需要有关我的提交和合并工作流安全性的建议

时间:2018-10-24 22:55:43

标签: git

我在本地分支机构工作,当我准备提交和合并时,我运行以下命令:

git commit -am <MY COMMIT MESSAGE> && git push && git checkout master && git pull && git merge <MY BRANCH> && git push && git checkout <MY BRANCH>

这感觉有点业余,并且我在 GIT 方面的知识和技能非常有限,我想征询有关我的命令是否安全的建议,如果不是,这是一种更好的方法。基本上我想将分支合并到 origin / master ,然后再切换回本地分支

2 个答案:

答案 0 :(得分:1)

以下一些反馈可能会有所帮助:

  • 在提交时使用-a标志会自动在本地暂存所有更改。您可能有不希望提交的更改。您可以假设在不执行-a标志之前,先手动暂存要提交的更改,而不使用-a标志。

  • 如果其他人在您拉动之前已将其推入原处(即,您的推入被拒绝),则束缚push adn checkout命令可能会导致问题。该命令可能会通过(即使被拒绝),并且结账仍然会发生(YMMV)。也许将commit / push然后checkout / pull链接成2个命令

  • git合并可能导致冲突,这将阻止命令运行。您可能还希望在合并之后但在推向原点之前运行单元测试。

答案 1 :(得分:1)

这是我的评论:

  1. git commit -am将不会添加新文件。
  2. 您的脚本不检查错误。如果任何命令失败(例如合并冲突),它将无意识地尝试执行下一步-您可能会处于混乱状态。
  3. 如果您始终在提交时一直合并到master,那么拥有非master分支的目的是什么。我想说只是在一个分支上工作。

    这很重要,因为它删除了5个步骤(&& git checkout master && git pull && git merge <MY BRANCH> && git push && git checkout <MY BRANCH>),仅保留了git commitgit push

    如果只有两个步骤,则无需“自动化”它们。


RE:评论

  

我们在团队的功能部门工作。在团队发展为多人之前,我只是在做大师– r3wt

在这种情况下,应先将其他人的更改合并到功能分支中,然后再将功能分支合并到master中。

在多人设置中,您的脚本并没有真正添加。例如,您如何编写评论?我建议将合并请求合并到“ master”(不是git,但是许多git repo托管解决方案都提供了此额外功能)。