当我发送拉取请求时获取“子项目提交”消息,并且我被告知合并上游更改。我该怎么办?

时间:2013-05-10 12:59:54

标签: git github

当我发送我的更改的拉取请求到回购时,我得到了这个:+ Subproject commit: *numbers*我被告知尝试合并上游更改。

我到底该怎么做?我尝试将git fetch origin用于我的本地仓库,然后使用mergetool,但它说:No files need merging

1 个答案:

答案 0 :(得分:1)

当您分叉分支时,系统会要求您更新分支,其中包含对项目所做的更改。例如,项目历史记录现在可能如下所示:

A  <- master
|
B  E  <-- Your branch which you submitted as a pull request.
|  |
C  D
| /
F   <-- You fork your branch and start working.

请注意,现在提交(A,B和C)不在您的分支历史记录中。您的分支与master之间的最后一次常见提交是F。项目维护者希望您将A,B和C合并到您的分支中,以便分支的历史记录如下所示:

   M  <-- New tip of your branch.
  /|
 / |
A  <- master
|  |
B  E  
|  |
C  D
| /
F   <-- You fork your branch and start working.

这样,如果A, B, C与您的提交E, D之间存在冲突,则必须解决这些冲突。然后项目维护者可以合并您的pull请求,而无需通过合并commit M来解决冲突。

要执行此更新原点,请检查分支并运行命令git merge origin/master(假设master是上游HEAD)。然后,如果存在冲突git mergetool,它将引导您解决冲突。提交合并并使用合并提交更新您的拉取请求。

如果你还没看过,我强烈推荐在线git书。 Here is the section on branching and merging