2017-09-25 40 views
0

我使用php-git客戶端來拉我的php腳本中的分支。 每當我從主人結帳到測試我得到以下錯誤。git:拉不可能,因爲你有未合併的文件

error: Pull is not possible because you have unmerged files. 
hint: Fix them up in the work tree, and then use 'git add/rm <file>' 
hint: as appropriate to mark resolution and make a commit. 
fatal: Exiting because of an unresolved conflict. 

我的文件位於bitbucket服務器上。我在bitbucket上添加/修改文件並在那裏提交。

我不明白,我不會在我的本地機器上進行任何操作,仍然會出現此錯誤。

以下是我的'git status'輸出。

Your branch is up-to-date with 'origin/testing'. 

You have unmerged paths. 
    (fix conflicts and run "git commit") 
    (use "git merge --abort" to abort the merge) 

Changes to be committed: 

    modified: g_1.0.yaml 
    new file: potter_3.4.yaml 
    new file: potter_3.4.yml 

Unmerged paths: 
    (use "git add <file>..." to mark resolution) 

    both modified: abc_1.0.json 
+0

在該文件夾/目錄中運行'git status'。 –

+1

'由於未解決的衝突而退出...... ...錯誤消息不能比這更清晰。輸入'git status'來查看哪些文件仍然存在衝突。 –

+0

添加了我的git狀態輸出,我的問題是如果我不在本地修改任何內容,所有內容都會在服務器上進行修改,爲什麼會出現此錯誤? – Nilesh

回答

1

你是在合併的中間,嘗試讀取您複製的信息,這是很清楚的,你應該做的: 您有未合併的路徑。 (解決衝突並運行「git的承諾」) (使用「混帳合併--abort」中止合併)

所以首先明確了合併衝突

使用您所選擇的合併工具(如:烏龜合併,合併)
或用手做,在衝突的文件,你應該看到箭似 < < < < < < < HEAD,選擇合適的一個(或多個)

,然後提交

git commit -m "foobar" 

現在,你應該能夠推動/從遠程拉,但是你可能需要拉動第一,以獲得新的本地更改合併。

或者,如果你不需要你的代碼,而只是想折騰出的一切,讓主人,你可以allays

git reset --hard origin/master 

到本地回購重置爲origin/master的狀態,但您將丟失所有本地更改

+0

感謝您的回答,但我的問題是,我沒有從本地做這些更改,它已被修改並承諾通過bitbucket.org下我的個人遠程回購,現在當我拉它,我得到錯誤 – Nilesh

+0

我不知道你做了什麼,(你可以檢查「git reflog」)。 – MrKekson

+0

但最有可能的是,有人推到您的回購站,或者您將某件東西合併到您的主回收箱中,並且當您回到當地時,發生衝突。但是這種情況非常正常,所以找一些好的合併工具。 – MrKekson

0

Unmerged paths:部分有一個文件:abc_1.0.json

這是衝突的標誌。它可能出現在您從同一分支運行以前的git pull時。


現在,您可以選擇:

  1. ,如果你知道你有一些東西,你在abc_1.0.json修改,你需要保持這種修改在這個文件中,解決衝突:

    • 開在編輯器中abc_1.0.json
    • 認準衝突標誌(線看起來像:<<<<< HEAD=====>>>>> testing
    • 選擇什麼版本應保持
  2. 如果你知道目前的合併並不重要,你可以運行git merge --abort,並嘗試再次拉開。

相關問題