有没有更简洁的方法来执行这个git工作流程?

时间:2016-01-25 17:11:48

标签: git gitlab

我正在运行一个由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
    
  • 继续开发

有更好的方法吗?

2 个答案:

答案 0 :(得分:3)

如果我作为你的一个初级开发者被置于这种(有点非典型的)情况下,我会做以下事情:

  1. 运行git fetch更新origin/master
  2. 运行git checkout -b my_branch origin/master以根据origin/master
  3. 的状态创建新分支
  4. 使用git add -p从不使用git commit -am工作并提交我的更改,这是提交更改的最糟糕方式。保证最终会因意外地提交你并不意味着
  5. 的东西而咬你
  6. 使用git push origin my_branch将我的分支推送到远程,并等待您执行合并
  7. 重复。不需要其他命令;从#1开始,当我origin/master时,我会及时更新fetch并准备好再次使用。
  8. 那就是说,你的初级开发者应该可以自由地使用他们想要的任何工作流程。应该熟悉Git,以至于您并不担心这些微观优化工作流程。他们可以在本地进行分支和合并,但是他们希望完全隔离您和他们的同行,并不要求每个开发人员都遵循相同的分支/合并模型,只要他们在推送方式上保持一致。

答案 1 :(得分:2)

嗯,这取决于你愿意偏离这种模式的程度。

一个好的基本模型是让每个开发人员在一些易于访问的服务器上拥有自己备份的裸存储库。然后,每个开发人员将拥有(至少)2个遥控器:1)主要的遥控器; 2)他们的拥有遥控器,一旦它变得干净整洁,他们就会推动自己的变化历史。

作为集成商,您可以从开发人员那里获取资金。遥控器,以及推动主要的 - 有效地将这些变化发布给每个人。