GitHub建议“强制推动会破坏你的拉动请求”。为什么?

时间:2018-05-02 10:23:59

标签: git github push collaboration

https://help.github.com/articles/about-pull-requests/中,GitHub有一个注释:

  

注意:处理拉取请求时,请记住以下几点:

     

[...]

     
      
  • 将提交推送到拉取请求时,请勿强制推送。强行推动会破坏您的拉动请求。
  •   

我不明白这个的原因 - 在过去,我经常强制推动修改提交到具有相关开放PR的分支机构,并且从未见过任何分支或PR UI损坏问题。

我知道强制推动使得同一分支上的同事更难工作 - 但对我来说,这并不能真正满足“损坏的分支”或“损坏的PR”的定义。

有人可以解释一下GitHub的意思吗?

1 个答案:

答案 0 :(得分:0)

强制推送可以破坏您的拉取请求。它并不总是如此。

当真正的强制推送发生时,原始拉取请求丢失一个或多个提交,并且更新的拉取请求可能会或可能不会引入一个或多个新提交。如果丢失提交引入的更改未包含在新的pull请求中,则文件内容已损坏。如果保留更改,但包含作者/提交者姓名,电子邮件或日期的信息是伪造的,我们也可以说拉取请求已损坏。这些是版本控制系统中最重要的事情。但如果你打算这样做,这不是问题。有时需要重写历史。

在你的情况下,我想只修改提交消息,没有重要的东西丢失,我相信只要你知道后果,做一个强制推动是正确的。但如果一个人意外地或鲁莽地这样做,那将是一个问题,特别是当拉取请求包括来自其他贡献者的未合并提交时。

当你真的需要进行强制推送时,你总是可以创建一个新的拉取请求,这样可以更加安全并避免烦人的问题