git分支相关

前言

git分支在多人协作开发里非常重要,之前没有这方面的需求,所以对这方面了解不多。公司实习多人协作开发,需要这部分的掌握,就重新整理了一下。

git分支

一般远程仓库有多个分支,master为主分支,应该是非常稳定的,也就是仅用来发布新版本,一般开发都在其它分支进行,当稳定后合并到master分支下,如果出现问题,及时回滚。

多人协作中,每个人都在dev分支上提交,每个人都应该创建自己的分支,然后往dev分支上合并。

实际开发

假设,远程仓库有master分支和dev分支,当我们git clone后,将分支切换到dev分支,然后进行开发,当然此处也可以再新加一个分支,当该功能做完后,再合并到dev分支,最后没问题的情况下合并到master分支。其它修bug或者新增一个功能的时候,也都可以新增一个分支,完成后合并,最后将分支删除。(当然,此处说的可能和实际开发还会有些出入,因为还没有真正在公司开发中尝试。如果后面有别的理解后,会再做做修改)。

分支合并

两种方式:

  • merge
  • rebase

首先merge便于理解,merge会把两分支的最新快照以及二者共同祖先进行三方合并,结果是产生一个新的快照。

而rebase命令能将提交到某一分支上的所有修改都移至另一分支上,其最直接的结果就是能确保在向远程分支推送时,能保持提交历史的整洁,即使用git log --graph查看分支提交历史时,是一条直线,更加简洁。

相关命令整理

提交文件到git仓库

1
2
git add <file>  #将工作区文件提交到暂存区
git commit -m <message> #将暂存区提交到分支

远程仓库

1
2
3
git remote  #查看远程仓库信息
git remote -v #查看更加详细的远程仓库信息
git push orgin <分支> #推送到远程仓库分支

分支相关

1
2
3
4
5
6
7
8
git branch  #查看分支
git branch <name> #创建分支
git checkout <name> #切换分支
git checkout -b <name> #创建+切换分支
git merge <name> #将目标分支合并到当前分支
git branch -d <name> #删除目标分支

git rebase <name>

解决冲突

当提交到远程仓库时,目标与当前不一致(即可能别人在这条分支上提交后),就会产生冲突。需要先在本地把冲突解决,然后提交。

1
2
3
git pull    #将最新的提交从orgin分支上抓取下来
git branch --set-upstream-to <branch-name> origin/<branch-name> #本地分支与远程分支链接
# 然后在本地合并,然后git add,git commit 提交