合并一个提交后面的Pull请求

svi*_*eet 6 git github pull-request git-fork

我分叉了一个Github存储库,并在几天内进行了一些更改,没有从原来的repo(我做了一个fork的repo)做了一次拉动.

现在我向原始仓库发出了拉取请求.我发现repo在我分叉之后又得到了另一个提交.

所以我的问题是,如果repo的所有者接受了pull请求,那么他之后做出的提交会保留还是他的repo会成为我的fork的相同副本?

如果是后者,那么你能告诉我怎么删除他所做的提交?

Nil*_*ner 8

两个分支的所有更改都将显示在历史记录中:

A-B------C----M--...
   \-X-Y---Z-/
Run Code Online (Sandbox Code Playgroud)

在那里X,Y并且Z是你的提交和C是提交你错过了.提交M是一个合并提交,它将包含其中的所有更改(并可能修复任何合并冲突C).您的提交将保持不变,之后M将包含所有的变化C,X,YZ.

或者,repo维护者可以重新绑定您的分支并在之后合并它:

A-B-C---------M--...
     \-X-Y-Z-/
Run Code Online (Sandbox Code Playgroud)

当一切正常时,M的状态将与进行常规合并时的状态完全相同.然而X,Y并且Z将单独地看起来它们起源于它们C(它们的SHA1值也将改变).

都同样有效,这两种方法都垫底建议,如果有(发展中的几个星期后,即)相当数量的你缺少的提交.

请注意:如果您的分支没有干净地合并并且冲突不容易修复,则repo维护者可能会要求进行合并或rebase.您的工作是提供可合并的分支机构.

在这种情况下,只需获取您正在请求的最新版本的分支并自行尝试合并:

git checkout your-branch
git pull upstream master
Run Code Online (Sandbox Code Playgroud)

要么

git checkout your-branch
git pull --rebase upstream master
Run Code Online (Sandbox Code Playgroud)

之后,分支机构将干净地合并到上游.只需为新合并的分支发布新的请求.