我正在运行一个由3名初级开发人员组成的团队,他们都在同一个Gitlab存储库的代码上工作。我已采用以下工作流程来同步更改。它有效,但它很麻烦,我觉得我错过了一种更清洁的方式。主分支受到保护,因此只有我可以推送或合并到其中。
工作流程如下:
拉主人
git pull origin master
创建本地开发分支
git checkout -b master_teammember1dev
进行更改,将它们提交给master_teammember1dev分支并将它们推送到Gitlab
git commit -am "changes"
git push origin master_teammember1dev
合并请求获得批准后,请使用Gitlab remote重新同步本地仓库:
拉副本
git pull origin master
删除本地开发分支
git branch -D master_teammember1dev
重置头部以跟随远程主控器
git reset --hard origin/master
分支主人
git checkout -b master_teammember1dev
有更好的方法吗?
答案 0 :(得分:3)
如果我作为你的一个初级开发者被置于这种(有点非典型的)情况下,我会做以下事情:
git fetch
更新origin/master
git checkout -b my_branch origin/master
以根据origin/master
git add -p
和从不使用git commit -am
工作并提交我的更改,这是提交更改的最糟糕方式。保证最终会因意外地提交你并不意味着git push origin my_branch
将我的分支推送到远程,并等待您执行合并#1
开始,当我origin/master
时,我会及时更新fetch
并准备好再次使用。那就是说,你的初级开发者应该可以自由地使用他们想要的任何工作流程。应该熟悉Git,以至于您并不担心这些微观优化工作流程。他们可以在本地进行分支和合并,但是他们希望完全隔离您和他们的同行,并不要求每个开发人员都遵循相同的分支/合并模型,只要他们在推送方式上保持一致。
答案 1 :(得分:2)
嗯,这取决于你愿意偏离这种模式的程度。
一个好的基本模型是让每个开发人员在一些易于访问的服务器上拥有自己备份的裸存储库。然后,每个开发人员将拥有(至少)2个遥控器:1)主要的遥控器; 2)他们的拥有遥控器,一旦它变得干净整洁,他们就会推动自己的变化历史。
作为集成商,您可以从开发人员那里获取资金。遥控器,以及推动主要的 - 有效地将这些变化发布给每个人。