我正在处理一个git分支,它目前是github上一个已关闭的pull请求的一部分。在最初的pull请求之后,我做了一些额外的提交,将这些提交推送到github,然后恢复这些提交并重新提交,因为我需要修改这些提交。
现在,如果我想将这些提交推送到github,我需要发出一个强制推送:但是我强烈地感觉到这可能会对现有的pull请求造成混乱,即使修改的提交发生在我发出pull请求之前的提交之后。
谁能告诉我如何最好地处理这种情况?我想我可能需要创建一个全新的分支,然后在该分支上发出一个pull请求。但是如果有一种方法可以将其链接到现有的pull请求,那将是更可取的。
5条答案
按热度按时间wf82jlnq1#
如果我没记错的话,那么如果你以任何方式强制推送或更新有问题的分支,GitHub将自动更新pull请求。如果强制推送会导致拉取请求不可能,那么GitHub会告诉你这一点。
你不需要担心更新pull request,因为GitHub会为你处理这件事。
也就是说,在 * 任何 * 远程分支 * 上执行
git push --force
可能 * 会对当前也在此分支上工作的同事造成伤害。所以你回避强制推送是正确的,但幸运的是,GitHub拉取请求并不是你最大的问题。eufgjt7s2#
在一个常规的但关闭的GitHub PR上使用
git push --force
后,今天我不能再重新打开它了,因为按钮被禁用,并显示消息:补片-1分支被用力推动或重新创建。
然而,根据isaacs/github#361(特别是这个),这似乎只发生在关闭的PR上。
ygya80vv3#
push到一个已经有pull request的分支会更新pull request,提交是否在pull request之后完成并不重要。
如果你不想更改pull请求,你应该创建一个 new 分支并对其进行处理。
wfsdck304#
拉取请求的内容将是为拉取请求发送的分支中的任何内容。因此,当你
git push --force
时,PR会在你刚刚推送到的分支中反映出你修改过的提交历史。w51jfk4q5#
这对我没用。我不得不更改PR正在合并的分支,然后将其更改回原始分支,以便Github UI更新PR以匹配新的分支提交。