GitHub 提示 "Force pushing can corrupt your pull request."为什么?

标签 git github push collaboration

https://help.github.com/articles/about-pull-requests/ , GitHub 上有一篇笔记写着:

Note: When working with pull requests, keep the following in mind:

[...]

  • When pushing commits to a pull request, don't force push. Force pushing can corrupt your pull request.


我不明白这样做的原因——过去我经常将修改后的提交强制推送到具有关联开放 PR 的分支,但从未见过任何分支或 PR UI 损坏问题。

我知道强制 push 使与同一分支上的同事一起工作变得更加困难——但对我来说,这并不真正符合“损坏的分支”或“损坏的 PR”的定义。

谁能解释一下 GitHub 是什么意思?

最佳答案

强制推送可能会破坏您的 pull 请求。它并不总是如此。

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

在你的情况下,我猜只有提交消息被修改并且没有任何重要的东西丢失,我相信只要你知道后果,就应该进行强制推送。但是如果有人不小心或不顾后果地这样做,这将是一个问题,尤其是当 pull 请求包含来自其他贡献者的未 merge 提交时。

当你真的需要强制推送的时候,你总是可以创建一个新的pull request,这样更安全,也避免了烦人的问题

关于GitHub 提示 "Force pushing can corrupt your pull request."为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50132325/

相关文章:

git - 更改链接到我的 ssh 公钥的电子邮件会有什么后果?

Git:如何将标记的修订 pull 入我的 fork 中?

c++ - 临时住址?

javascript - Visual Studio Code 2020 - git 连接并添加项目

linux - 在 vim 中执行打开默认编辑器命令

spring - 如果远程存储库不可用,如何为 Spring Cloud Config 服务设置本地后备配置?

ios - Font Awesome Swift : "Ambiguous Use of Code"

javascript - 迭代一个函数并将其插入数组以创建具有一定数量元素的数组

java - 小服务程序 3 : Async - cant PUSH partial response

git - 在 git 存储库中为每个文件配置编码以正确输出 `git diff`