【问题标题】:what happens after the amend and force push in isolated branch修改并强制推送隔离分支后会发生什么
【发布时间】:2021-10-01 02:35:48
【问题描述】:

我使用强制推送来修改我的分支B 上的提交消息。我一个人在这个分支上工作,然后我向master A申请了一个 PR。

PR接受后会不会有问题?

根据this 的回答,从我的分支中拉出来的人会得到一个错误。但是没有人从我的分支中拉出来。但是在 PR 合并之后,我的分支以及修改后的提交将在 master 中。那么,已经/将要从master 拉取的开发人员会出现任何错误吗?

this 的回答并没有说 PR 合并后其他开发者从master 获取是否会有任何错误

【问题讨论】:

  • 如果你已经提出了PR,并且调整了PR,只要它仍然是PR就可以了。 (这在某种程度上是 GitHub 特有的。)Dietrich Epp 关于那些已经抓住你早期提交的人的回答很好,尽管声称他们会得到 error 的说法太强了;但问题是,您在这里假设没有人抢占您之前的提交。所以这变得无关紧要。这就像说每个吃了毒花生的人都会死:如果我们确定没有人吃过毒花生,那么这个说法可能是正确的,但没有人会死,没有什么好担心的。
  • 请注意,基础 Git 没有拉取请求。每个提供者(GitHub、GitLab、Bitbucket 等)都会做自己的事情来添加诸如拉取请求之类的东西(GitLab 甚至不称它们为拉取请求),因此每个提供者的情况可能不同。如果你只关心 GitHub,那么说出来,并保留 github 标签。
  • 这是一个 PR,幸运的是要添加一个新文件。所以没有人抓住我的承诺。只是不想在 PR 合并后给其他开发者或维护者带来不必要的麻烦。

标签: git github git-commit git-push


【解决方案1】:

编辑提交和强制推送的问题在于,就 git 而言,未编辑和已编辑的提交是不相关的。因此,如果有人同时拉取提交的原始版本和编辑版本,git 会尝试将它们合并并弄得一团糟。

另一方面,如果他们只提取编辑后的版本,一切都很好。

因此,强制推送用于协作或供最终用户下载的分支通常是一个坏主意。

另一方面,强制推送拉取请求分支通常是可以的,并且通常用于清理以响应反馈。只有拉取请求的最终版本可能会合并到真正重要的分支中。

【讨论】:

  • 谢谢。合并后其他开发者是否会发现我的强制推送(查看我的 PR 除外)?
  • 跟随主分支的人只会看到提交的最终版本,而不是你最初推送的那些,后来被强制推送覆盖的那些。
猜你喜欢
  • 1970-01-01
  • 2023-03-31
  • 2012-10-07
  • 2022-01-02
  • 2012-07-12
  • 1970-01-01
  • 2017-02-12
  • 1970-01-01
  • 2020-08-25
相关资源
最近更新 更多