我收到一个PR的错误,但是当我git status
它说nothing to commit, working directory clean
。“此拉取请求包含必须解决的合并冲突。”
这是与PR的分支。
On branch pr12
nothing to commit, working directory clean
我收到一个PR的错误,但是当我git status
它说nothing to commit, working directory clean
。“此拉取请求包含必须解决的合并冲突。”
这是与PR的分支。
On branch pr12
nothing to commit, working directory clean
git status
告诉你关于你的工作目录树的状态和你指数(其中上演改变生活)对当前分支相对于最新提交。您看到的输出意味着磁盘上的文件与您分支上的最新提交完全匹配。也就是说,没有什么可以提交的。
来自GitHub的消息不是约承诺,但约合并。 GitHub想为您提供一个单击方法来将此分支合并到您的master
分支中,但它不能,因为合并会导致冲突。由于GitHub无法帮助您通过网站解决冲突,因此它会要求您在自己的计算机上解决它们。
处理这种情况的最佳方法是将当前主分支合并到您的主题分支本地然后将结果推送到GitHub。要做到这一点,做到以下几点:(我假设GitHub的远程调用origin
它通常是,你可能知道,如果它不是。)
$ git checkout pr12 # If you're not already on pr12
$ git fetch origin
$ git merge origin/master
首先,我们做当然,我们是在正确的分支。然后我们确保我们拥有来自GitHub仓库master
分支的最新代码。然后我们将该代码合并到我们的pr12
分支中。
切记:git fetch origin
更新我们的本地origin/master
与GitHub的master
相同,但它不会触及简称为master
的本地分支。我们必须检查我们的master
分支以对其进行更改。相反,我们只是更新我们关于GitHub(origin/master
)上的内容的想法,并将其合并到我们的pr12
中。
当您运行merge
命令时,您将看到冲突。那些代表git(和GitHub)无法自动做出的决定。编辑这些文件,以便它们以您希望它们最终结束的方式进行。然后:
$ git add each/file.txt that/had/conflicts.conf
$ git commit # Your editor will open with a pre-filled
# commit message. Just save and close the file.
$ git push origin pr12
也就是说,我们补充一点,我们的固定文件的版本,然后完成合并提交我们开始git merge
。最后,我们推动新的合并提交分支到GitHub。
既然我们已经解决了冲突,这个分支应该是微不足道的,以合并另一种方式,到master
。 GitHub会注意到,并给你一个绿色的“合并”按钮。
当我遇到此消息时,这是因为我的分叉是一个特定的回购背后的原始。在我的具体情况下,我分叉的回购是pydata/pandas
。
我不得不configure a remote for my fork做:
> git remote add upstream [email protected]:original_user/original_repo.git
> git remote -v
origin [email protected]:some_user/pandas.git (fetch)
origin [email protected]:some_user/pandas.git (push)
upstream [email protected]:pydata/pandas.git (fetch)
upstream [email protected]thub.com:pydata/pandas.git (push)
(注意:git remote add upstream
是说“添加远程所谓的‘上游’的名称可以是任何的Git的方式)
然后我fetched the latest commits从原来的回购与:
> git fetch upstream
> git checkout master # Just in case you're not already on master
> git merge upstream/master
最后推合并r epo回github:
> git push
在我做了git merge origin/master几乎每个文件都说“both added”和“new file”。 – Nathan 2014-10-07 17:32:27
这很奇怪。 Git告诉你,自从'origin/master'和'pr12'分歧的时候,两个分支都添加了这些文件。你可以通过'git log --graph --oneline origin/master pr12'找到它们在视觉上的分歧。该命令的输出是否与您期望这两个分支的历史看起来一样? – Peeja 2014-10-07 17:44:58
所以我有点明白了。但现在所有从原始回购合并分叉回购出现在分支。当我尝试恢复那个提交时,它说了一些关于-m开关的内容。 – Nathan 2014-10-07 18:56:25