Git/Github多人协作
在一个github的仓库里,一般会有一个主分支,此外会有许多开发分支,每个人可以自己拉取一个分支,开发者单独在这样的分支里开发自己的代码和功能,之后提交到拉取的分支上,最后在github网站上提一个pull request,等待确认无误,再merge到主分支上,至此,一个规范的流程就结束了。
流程
首先使用的是git clone 命令进行远程仓库的克隆, clone
命令会为你自动将其命名为 origin
,拉取它的所有数据, 创建一个指向它的 master
分支的指针,并且在本地将其命名为 origin/master
。 Git 也会给你一个与 origin 的 master
分支在指向同一个地方的本地 master
分支。
当克隆一个仓库时,它通常会自动地创建一个跟踪 origin/master 的 master 分支。简称为跟踪分支。
跟踪分支是与远程分支有直接关系的本地分支。跟踪分支跟踪的分支叫做“上游分支”。这时候当你使用git push/pull,Git可以自动的识别去哪个服务器上抓取,合并。
当我们将本地新建立一条分支与远程的分支进行关联的时候,可以使用 git checkout -b branch-name origin/branch-name
也可以理解为在本地建立一个远程仓库某个分支上的跟踪分支。
但是如果你想将本地已经存在的分支与远程的分支进行关联的时候,则可以使用 git branch --set-upstream branch-name origin/branch-name
这样,你就已经准备好了团队协作的基本条件。
目前为止,我们本地有自己的main
分支关联了远程的main
分支,本地有自己的dev
开发分支关联了远程的dev
分支。假设远程的main
分支存放的是这个项目的阶段性的成品,而为之需要的是一个团队许多人的努力,每个人在自己的分支单独操作,最后推送到自己的远程分支,事实上这些操作都是没有问题的,但是为了能够将你的代码加入到这个项目的main分支也就是真正被用起来,你现在还需要做的是在github上提一个pr(pull request)。确认之后就可以merge到main分支上了。
官方给出的PR定义如下:拉取请求(PR)可让您告诉其他人您已推送到 GitHub 存储库中的分支的更改。打开拉取请求后,您可以与协作者讨论和审查潜在的更改,并在您的更改合并到基础分支之前添加后续提交。
在项目开发的过程中,每个人都会在做类似以上的操作,最后我们都将自己代码合并到了main分支上,容易想到:假如我是一名开发者,我很有可能需要别的开发者所写的代码,所以远程的main分支会时不时的更新,作为开发者的我也需要将本地的main与远程的main进行同步,在本地通过git pull切换到main分支后执行git pull。之后在切换回自己的dev分支,调用 git merge
注意在上面的拉取或者合并的过程中很有可能会产生冲突。可以使用git status查看那些文件有问题,进入文件查看几个相应的地方出现的>>>>>>>> ========= <<<<<<<<这样的东西,代码核查以后再add就可以了。