使用GIT前请阅读(有git基础可略过) git指引 :http://www.bootcss.com/p/git-guide/
一、 下载git
http://git-scm.com/download/
二、 安装
全部默认配置即可。
运行Git Bash
(一) 配置用户信息:
输入以下命令:
git config --global core.ignorecase false
git config --global user.name “YourName”
git config --global user.email " [email protected]"
(二) 生成密钥
ssh-keygen -t rsa -C “[email protected]” -f ~/.ssh/YourName
此时会在 ~/.ssh 目录下生成YourName 和YourName.pub 两个文件。
为了开通git用户,请把YourName.pub,发送至GIT 管理员。
以上配置用户信息和生成密钥的过程是为了便于管理用的,自己平时用的话可以略过此步骤。
四、使用android studio中的vcs工具初次上传初始代码到一个新的远程仓库。
1、点击AS菜单栏中【VCS】,选择“Create Git Repository”,从而创建出与AS关联该项目的一个本地仓库。
图1
2、点击AS菜单栏中【VCS】,选择“GIT”,接着选择“Remotes…”,至此在弹窗中点击加号新建关联到远程库,在图3的弹窗中,1处的名称要记住了,后面会用到;2处是你远程库的链接地址。
图2
图3
3、选中要上传的项目右击,选择“Git”,在选择“Add”,在选择“Commit Directory…”。
4、点击工具栏中的同步代码的图标(向上的箭头),要选择"commit and push"。此时有可能报错:
上传报错Push rejected Push to origin/master was rejected
解决方法: 在AS的Terminal窗口中输入命令:git pull origin master –allow-unrelated-histories(此命令中的“origin”就是步骤2中所提到的名称)
然后再在AS的Terminal窗口中输入命令:git push -u origin master -f
5、点击工具栏中的同步代码的图标(向上的箭头),要选择"commit and push"。
至此已经将代码同步到了远程库中。
五、GIT操作:
1、删除远程库上的文件或者文件夹步骤说明。
1)先把代码更新到跟远程库一样。
2)git rm 文件名 注:用你要删除的文件名替换掉“文件名”。此命令是删除文件
git rm r 文件夹名 注:用你要删除的文件夹名替换掉“文件夹名”。此命令是删除文件夹
git rm --cached “文件路径” 注:不删除物理文件,仅将该文件从缓存中删除。应用场景:有文件不小心commit到了服务器。
git rm --f “文件路径” 注:不仅将该文件从缓存中删除,还会将物理文件删除(不会回收到垃圾桶)。
3)git commit -m"自己备注的删除说明"
4)git push origin master
执行完这四步就可以保留下本地的文件或者文件夹不变,只是删除了本地库和远程库的文件或者文件夹。
六、使用vcs进行pull和push操作出现错误
错误提示内容:Could not read from remote repository.或者Invalid user or password.
处理办法:file–>setting…–>version control–>git–>SSH executable:Native。如下图:
七:git的回滚或撤销:
1、在工作区的代码
git checkout – a.txt # 丢弃某个文件,或者
git checkout – . # 丢弃全部
注意:git checkout – . 丢弃全部,也包括:新增的文件会被删除、删除的文件会恢复回来、修改的文件会回去。这几个前提都说的是,回到暂存区之前的样子。对之前保存在暂存区里的代码不会有任何影响。对commit提交到本地分支的代码就更没影响了。当然,如果你之前压根都没有暂存或commit,那就是回到你上次pull下来的样子了。
2、代码git add到缓存区,并未commit提交
git reset HEAD . 或者
git reset HEAD a.txt
这个命令仅改变暂存区,并不改变工作区,这意味着在无任何其他操作的情况下,工作区中的实际文件同该命令运行之前无任何变化
3、git commit到本地分支、但没有git push到远程
git log # 得到你需要回退一次提交的commit id
git reset --hard
或者
git reset --hard HEAD^ # 回到最新的一次提交
或者
git reset HEAD^ # 此时代码保留,回到 git add 之前
4、git push把修改提交到远程仓库
1)通过git reset是直接删除指定的commit
git log # 得到你需要回退一次提交的commit id
git reset --hard
git push origin HEAD --force # 强制提交一次,之前错误的提交就从远程仓库删除
2)通过git revert是用一次新的commit来回滚之前的commit
git log # 得到你需要回退一次提交的commit id
git revert
3) git revert 和 git reset的区别
鸣谢:
1、 https://www.cnblogs.com/lao-liang/p/5019549.html
2、http://blog.csdn.net/u010316858/article/details/50053387