目录
分支与合并
基本操作
创建
git branch <branchName>
查看现有分支
git branch
查看本地分支
git branch -r
查看远程分支
git branch -v
查看分支详细信息
选择分支
git checkout <branchName>
合并分支
git merge -m <message> <anothorBranch>
撤销上一次合并分支
git merge --abort <anothorBranch>
删除分支
git branch -D <BranchName>
带有记录的合并
git merge --no-ff -m <message> <branchName>
合并分支时,加上--no-ff
参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward
(默认)合并就看不出来曾经做过合并。()
团队合作的分支看起来就像这样:
Example
在master分支创建t1文件,接着在dev创建t2文件
如果使用fast forward
合并的话(无合并记录)
如果使用--no-f
进行合并(有合并记录)
临时保存
当你有进行到一半的工作,但尚未提交,此时你又需要切换支线,进行其他工作。这时候就可以用stash来保存当前已跟踪(暂存)的文件,工作区和暂存区会重新回到上一次提交的状态。当返回之前的工作时,只需要进行恢复现场即可。
基本操作
git stash
快速保存
git stash save <message>
保存现场
git stash list
查看已经保存的现场
git stash apply <stash@?>
恢复现场
git stash pop
恢复现场并删除现场记录
git stash drop <stash@?>
删除现场
保存现场必须add所有文件 ,否则提示 No local changes to save
Example
在master中创建t1并提交,接着保存现场。创建dev分支,修改t1,但不保存现场。
切回master,可以看到这时候t1是dev修改后的内容。进行恢复时,会显示t1被重写了,需要移除它。删除后,再次恢复,操作成功。输出t1,t1没有任何内容,已经恢复到上次保存的节点
标签
通常标签是作为版本标识
基本操作
git tag
查看所有标签
git show <tagName>
查看标签详细信息
git tag <tagName>
在Head处,新建一个标签
git tag <tagName> <commit_id>
给指定commit id添加标签
git tag -a <tagName> -m <message>
创建标签并带有附注
git tag -d <tagname>
可以删除一个本地标签
git push origin <tagname>
推送指定标签的支线
git push origin --tags
推送新增的标签
git push origin :refs/tags/<tagname>
删除一个远程标签