我正在开发一个git分支,它目前是github上一个关闭的pull请求的一部分。在初始拉取请求之后,我做了一些额外的提交,将这些提交推送到github,然后还原那些提交并重新发送它们,因为我需要修改提交。
现在,如果我想将这些提交推送到github,我需要发出强制推送:git push --force
。但我强烈认为,这可能会导致现有的pull请求出现混乱,即使更改的提交发生在我提出拉取请求之前存在的提交之后。
有谁能形容我如何最好地处理这种情况?我想我可能需要创建一个全新的分支,然后在该分支上发出一个pull请求。但是,如果有办法将此链接与现有的拉取请求相关联,那将是更可取的。
答案 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上。