我收到一個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