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



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

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

这感觉有点业余,而且我对GIT的知识和技能非常有限,我想就我的命令是否安全征求意见,如果不是,则有更好的方法来实现这一目标。基本上我想将我的分支合并到源/主分支,然后切换回我的本地分支

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

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

  • 如果其他人在您拉取之前推送到源(即您的推送被拒绝(,则链接推送和检出命令可能会导致问题。该命令可能会通过(即使被拒绝(,并且仍会发生结帐 (YMMV(。也许链接提交/推送,然后签出/拉取,分成 2 个命令

  • git 合并可能会导致冲突,从而阻止命令运行。您可能还希望在合并之后但在推送到源之前运行单元测试。

以下是我的评论:

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

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

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


回复:评论

我们在团队的功能分支中工作。 在团队发展到多人之前,我只在 Master – R3WT 上工作

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

在多人设置中,您的脚本并没有真正加起来。例如,您如何进行代码审查?我建议将拉取请求合并到"master"中(这不是 git,但许多 git 存储库托管解决方案都提供此额外功能(。

最新更新