如果您强制推送到具有现有拉取请求的分支会发生什么?

时间:2015-09-02 07:06:40

标签: git github pull-request

我正在开发一个git分支,它目前是github上一个关闭的pull请求的一部分。在初始拉取请求之后,我做了一些额外的提交,将这些提交推送到github,然后还原那些提交并重新发送它们,因为我需要修改提交。

现在,如果我想将这些提交推送到github,我需要发出强制推送:git push --force。但我强烈认为,这可能会导致现有的pull请求出现混乱,即使更改的提交发生在我提出拉取请求之前存在的提交之后。

有谁能形容我如何最好地处理这种情况?我想我可能需要创建一个全新的分支,然后在该分支上发出一个pull请求。但是,如果有办法将此链接与现有的拉取请求相关联,那将是更可取的。

4 个答案:

答案 0 :(得分:13)

如果我的记忆正确地为我服务,那么如果您以任何方式强行推送或更新有问题的分支,GitHub将自动更新拉取请求。如果强制推送会导致拉取请求无法执行,那么GitHub会告诉你这个。

您无需担心更新拉取请求,因为GitHub将为您处理此事。

这就是说,在任何远程分支上执行git push --force可能会给正在此分支机构工作的同事造成混乱。因此,你回避强迫推力是正确的,但幸运的是,GitHub拉动请求不是你最大的问题。

答案 1 :(得分:2)

推送到具有现有拉取请求的分支将更新拉取请求,提交在拉取请求之后完成无关紧要。

如果您不想更改拉取请求,则应创建一个 new 分支并对其进行处理。

答案 2 :(得分:1)

拉取请求的内容将是为拉取请求发送的分支中的任何内容。因此,当您git push --force时,PR将在您刚刚推送到的分支中反映您修订的提交历史记录。

答案 3 :(得分:0)

今天在常规但已关闭 GitHub PR上使用git push --force之后,我无法重新打开它,因为该按钮被禁用,并显示以下消息:

  

补丁1分支被强制推送或重新创建。

但是,根据isaacs/github#361(特别是this),这似乎只发生在已关闭的PR上。