Git的使用
对于程序员,git是非常优秀的代码管理工具,所以一定要掌握其使用方法,在此简单的整理下git的常用命令,在了解git的常用命令时,首先要了解下面的几个概念:
HEAD: HEAD就是指向当前分支当前版本的游标。
Index:Index即为暂存区,当你修改了你的git仓库里的一个文件时,这些变化一开始是unstaged状态,为了提交这些修改,你需要使用git add把它加入到index,使它成为staged状态。当你提交一个commit时,index里面的修改被提交。
working tree: 即当前的工作目录。
1.Git 回退到指定的版本:
1.git reset --hard HEAD^ 回退到上个版本
2.git reset --hard HEAD~3 回退到前3次提交之前,以此类推,回退到n次提交之前
3.git reset --hard commit_id 退到/进到 指定commit的sha码
2.git remote 的基本用法:
1.git remote 不带参数,列出已经存在的远程分支
2.git remote -v | --verbose 列出详细信息,在每一个名字后面列出其远程url,此时, -v 选项(译注:此为 –verbose 的简写,取首字母),显示对应的克隆地址。
3.git remote add url 添加一个远程仓库
3.git branch 的用法:
1.git branch 不带参数,查看本地的所有分支,但不会列出对应分支的最近修改情况。
2.git branch -r 查看远程的所有分支,但不会列出对应分支的最近修改情况。
2.git branch -a 查看本地和远程分支,但不会列出对应分支的最近修改情况。
3.git branch -v 查看本地分支,同时列出本地分支的最近修改情况。
4.git branch -av 查看本地分支和远程分支,同时列出本地分支和远程分支最近的修改情况。
3.git reset 的用法:
git reset [<mode>] [<commit>]
git reset :将当前分支的HEAD指向给定的版本,并根据模式的不同决定是否修改index和working tree。
(1).git reset :后面什么命令都不跟的时候默认是–mixed,常用场景是将本地缓存区的文件清除掉,但是工作区的文件依旧存在(使用–mixed参数与–soft的不同之处在于,–mixed修改了index,使其与第二个版本匹配。index中给定commit之后的修改被unstaged).
(2).git reset --sorft commitID : 将只会重置HEAD到制定的版本,不会修改index和working tree(而本地文件的内容并没有发生变化,而index中仍然有最近一次提交的修改,这时执行git status会显示这些修改已经在再暂存区中了,无需再一次执行git add)。
(3).git reset --hard commitID : 会重置HEAD到制定的版本,同时修改working tree,也就是当前的工作目录。(此操作会对commitID以上的最后一次提交的修改,包括本地文件的修改都会被清除,彻底还原到上一次提交的状态且无法找回。所以执行reset --hard操作时要三思).
注:git revert :也能起到回退版本的作用,不同之处在于:
(1)git revert 会回退到之前的那次提交,比如git revert HEAD~3会回退到最近的第4个提交的状态,而不是第3个。
(2).git revert会产生一个新的commit,将这次回退作为一次修改记录提交,这样的好处是不修改历史提交记录。
同步远程分支的代码到本地新建的分支:git checkout -b myRelease origin/Release
强推到远程:git push origin HEAD --force