0%

#5 Git程序员进阶篇

一鼓,程序员进阶篇肝!!!

分支管理

创建新分支

1
git branch dev

查看所有分支

1
git branch

切换分支

1
git checkout dev

合并分支

1
2
git merge --no-ff dev		在非dev 分支上使用此命令
--no-ff:禁用快速合并,采用普通合并策略,这样合并后的历史有树状分支,而fast-merge模式看不出曾经做过合并

冲突处理

1
2
3
4
5
6
7
8
9
10
11
合并分支出现冲突时,需要手工解决冲突,例如:
<<<<<<< HEAD

hahadasfsfsas
sfsaasf
sfasfas1
=======
qwerryuuert
erterytyer

>>>>>>> dev

分支管理策略

删除分支

1
2
3
git branch -d dev	在非dev 分支上使用此命令,已合并分支的情况下使用

git branch -D dev 在非dev分支上使用此命令,强制丢弃分支,未合并分支的情况下使用

保护现场(压栈)

1
git stash

查看栈内容

1
git stash list

恢复现场(出栈)

1
2
方法一:
git pop 恢复并且删除
1
2
3
方法二:
git stash apply 恢复但没有删除
git stash drop 删除
1
2
方法三:
git stash apply stash@{0} 恢复指定的stash

修复bug 后合并到其他分支

1
git cherry-pick bug_commit_id		在其他分支上执行此命令

标签管理

Git的标签是版本库的快照,其实它就是指向某个commit的指针(分支可以移动,标签不能移动),tag 就是一个让人容易记住的有意义的名字,它跟某个commit绑在一起。

打标签

1
git tag v1.0		在当前commit_id 中打标签
1
git tag v1.0 commit_id		在指定commit_id 中打标签
1
2
3
4
git tag -a v1.0 -m '备注' commit_id
-a:指定标签名
-m:备注信息
commit_id:提交号

查看所有标签

1
git tag

查看标签详细信息

1
git show v1.0

注意:标签总是和某个commit挂钩。如果这个commit既出现在master分支,又出现在dev分支,那么在这两个分支上都可以看到这个标签。

推送本地标签到远程仓库

1
2
3
git push origin v1.0		推送一个

git push origin --tags 推送本地的所有标签

删除本地标签

1
git tag -d v1.0

删除远程仓库标签

1
2
git tag -d v1.0							先从本地删除
git push origin :refs/tags/v1.0 再从远程删除

参考资料

[1] 实际项目中如何使用Git做分支管理,csdn
[2] 分支管理策略,廖雪峰博客
[3] 标签管理,廖雪峰博客