我在本地分支机构工作,当我准备提交和合并时,我运行以下命令:
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 ,然后再切换回本地分支
答案 0 :(得分:1)
以下一些反馈可能会有所帮助:
在提交时使用-a标志会自动在本地暂存所有更改。您可能有不希望提交的更改。您可以假设在不执行-a标志之前,先手动暂存要提交的更改,而不使用-a标志。
如果其他人在您拉动之前已将其推入原处(即,您的推入被拒绝),则束缚push adn checkout命令可能会导致问题。该命令可能会通过(即使被拒绝),并且结账仍然会发生(YMMV)。也许将commit / push然后checkout / pull链接成2个命令
git合并可能导致冲突,这将阻止命令运行。您可能还希望在合并之后但在推向原点之前运行单元测试。
答案 1 :(得分:1)
这是我的评论:
git commit -am
将不会添加新文件。 如果您始终在提交时一直合并到master,那么拥有非master分支的目的是什么。我想说只是在一个分支上工作。
这很重要,因为它删除了5个步骤(&& git checkout master && git pull &&
git merge <MY BRANCH> && git push && git checkout <MY BRANCH>
),仅保留了git commit
和git push
。
如果只有两个步骤,则无需“自动化”它们。
RE:评论
我们在团队的功能部门工作。在团队发展为多人之前,我只是在做大师– r3wt
在这种情况下,应先将其他人的更改合并到功能分支中,然后再将功能分支合并到master中。
在多人设置中,您的脚本并没有真正添加。例如,您如何编写评论?我建议将合并请求合并到“ master”(不是git,但是许多git repo托管解决方案都提供了此额外功能)。