在创建好远程仓库并建立好分支后,就需要团队成员共同完成代码的编写与维护了。本文将介绍如何维护团队成员之间提交的代码,保证最后工程的合并与实现。
ps:如果不清楚如何创建仓库,可以看我之前的新手教程 Git创建多人仓库与配置 ,Git提交至本地/远程仓库流程。
在一开始由 master 分支 上传初始项目后,其他成员通过自己的分支 pull 下来 master 分支的项目
命令:git pull origin master (origin 为本地源名称 ,master 为远程需要拉下来的分支名称 )
正常情况下,由master上传空项目文件,成员pull 下载后直接在该项目文件上操作,push并在远程仓库合并分支代码即可(即只需在一开始pull一次,之后便可在远程仓库直接合并代码)。
若项目初始时期没有进行此操作,而是直接本地创建新项目并操作(无pull下来的操作),则提交后远程仓库将无法合并分支代码(因为对于仓库而言这些项目不同源,无法直接合并)
解决方法如下:
还是执行命令:git pull origin master (origin 为本地源名称 ,master 为远程需要拉下来的分支名称 )
若项目名称相同,则会自动添加新增文件,并对相同名称的文件进行注释型添加
ps:“注释型添加” 即为:在相同名称但内容不同的文件内添加不同的部分,这部分由
<<<<<<< HEAD
(本地的原文件内容XXXX)
=======
(pull下来的新的有修改的内容)
>>>>>>> 69dc794474d6d55bdb00ce5c53ea480a10f9fb00
构成,需要手动去除头尾注释并修改差异内容。
待手动修改代码后,进行add,commit,push操作后提交至远程仓库,这时分支之间便产生了联系(包含),可于远程仓库合并分支。
例:
若标题开头有WIP:,则该合并并不会立即进行,而是等待。知道标题开头不含 WIP: 即可自动合并
输入框内可输入合并注释信息(还可以上传注释文件,如果你想)
点击创建合并请求后,将确认合并方法,主要为 git merge ,git merge –no-ff
git merge –no-ff 可以保存你之前的分支历史。能够更好的查看 merge历史,以及branch 状态。
git merge 则不会显示 feature,只保留单条分支记录。
从合并后的代码来看,结果其实是一样的,区别就在于 --no-ff
会让 Git 生成一个新的提交对象。如果你根本不在意提交历史,也不爱管 master 干不干净,那么 --no-ff
其实没什么用。不过,如果某一次 master 出现了问题,你需要回退到上个版本的时候,比如上例,你就会发现退一个版本到了 B,而不是想要的 F,因为 feature 的历史合并进了 master 里。
选择完合并方法后,仓库将自动合并分支,操作完成。
全篇瞎扯,兼听则明