首先, 代码提交者需要进行pr
(pull request)操作, 通知项目管理者进行合并操作.
在项目管理还未进行合并操作之前, 理论上, 自身提交的分支内容不应该进行改动;
如果在合并前, 功能需要调整; 直接在自身提交的分支上进行编码, 然后 add->commit->push; 无需再次进行pr操作;
pr仅是一个通知操作, 并没有做任何其他的动作; 不会复制你的分支内容到主库, 所以切记, 不要以为pr后代码就会到主仓库而自身仓库就可以继续进行编码
;
合并操作, 是由项目管理者进行; 将开发者仓库分支内容合并至主仓库;
不要使用git页面上的合并按钮进行合并, 如果使用按钮会在commit树中多一个没有的commit (如: Merge branch ‘xxxx’ into ‘master’), 造成commit内容冗余混乱;
http://git.citongs.com/xxxx/mgr.git
git remote add http://git.citongs.com/xxxx/mgr.git xxx
; 如此xxx就代表此开发人员的仓库; 同理,upstream
, origin
是同样的概念;git fetch xxxx 分支名
; 或省略分支名以获取整个仓库git merge xxxx/分支名
; 合并后进行代码比对等操作; 无误后进行 push
操作master分支应该设置为,不允许
force push
操作
有时在多人同时开发时, 可能会出现多人同时进行pr请求的情况; 此时, 如果合并了一个人员的代码, 另外一个人员的代码应为commit树与master库不同, 就会出现冲突或多一个Merge branch ...
commit的情况;
origin/master
为主进行rebase, 来消除这个自动生成的commit; 如: git rebase origin/master
;!! 一定要保证项目commit的清晰; 多余的commit在代码追踪/维护等都会有阻碍