为什么使用分支
复制粘贴自百度
(1)在本地使用分支
本来在master分支上开发的,如果我没实现一个小的功能,就进行一次commit的话?那么分支上不就有很多的commit的吗?推送上去,您会看见服务器上有很多不必要的提交,这样子就不简洁了,版本历史也不清楚.但是使用分支,完成一个完整的功能,然后主分支使用 git merge 分支名 合并分支,做一个整的提交推送,那么服务器上的历史只有这一个commit的了,这不就简洁了吗?
(2)
在服务端,我有多个小组,每个小组是一个分支,因为master是保持最稳定代码的版本,所以我要审查过每个分支上的代码再合并,而不是立刻将他们分支上的合并到master上面,一来保证了代码的质量,而来在小组方面可以更快发现bug,然后通知修改
-
git分支创建 、合并
查看当前的分支:git branch(*在哪个分支上,说明HEAD指向哪个分支)
创建一个分支:git branch 分支名
分支的切换:git checkout 分支名
创建并切换:git checkout -b 分支名
分支的合并:git merge 分支名
删除分支 git branch -d 分支名 -
冲突解决
人生不如意之事十有八九,代码也一样,小组分之合并不可避免出现冲突
合并后出现错误,可以查看状态git status-------错误内容报红—直接vi打开修改,完事add,commit
合并出现错误后可以看一下分支合并图(详细信息)
git log --graph --pretty=oneline --abbrev-commit
- 标签管理
-
创建:
git tag 标签名(v1.0) -
查看所有的标签:
git tag
打完标签并描述并绑定
git tag -a v1.0 -m “XXXX” ac12435344 -
绑定版本号:
查看所有版本号详细信息
git log --pretty=oneline --abbrev-commit
git tag 标签名 版本号 -
显示绑定的commit id版本的详细信息
git show 版本号 -
删除一个标签:
git tag -d 标签名
创建的标签只能存储在本地,不会自动推送到远程
手动的推送标签
git push origin v1.0 推送指定标签到远程
git push origin --tags 把本地所有的标签推送到远程
删除本地:
git tag -d 标签名
删除一个或者多个已经传输的,远程的标签
1.先删本地:git tag -d 标签名
2.在删远程:git push origin :refs/tags/标签名