2013-03-27 65 views
0

我試圖從回購「git pull」,然後我得到一個錯誤說,拉不可能,因爲你有未合併的文件,但我在網上做了一些搜索,「git pull = git fetch + git merge「,不是嗎?git pull後得到錯誤

我用的git拉,然後我得到了以下信息

U Assembly-CSharp.pidb 
    U Assembly-UnityScript.pidb 
    M Assets/testing.unity 
    U Library/assetDatabase3 
    U Temp/Undo55e9beda8401848509d9e3bb5d5fe513 
    U Temp/Undof0c17c0ba33904b16a1698563ff5302c 
    U Temp/__EditModeScene 
    U wiisummoner-csharp.sln 
    U wiisummoner.sln 
Pull is not possible because you have unmerged files. 
Please, fix them up in the work tree, and then use 'git add/rm <file>' 
as appropriate to mark resolution, or use 'git commit -a'. 

以上是錯誤信息,然後,我嘗試「混帳合併」,我得到一個錯誤「合併是不可能的,因爲你有未合併文件」。這是如此混亂..任何人都知道問題是什麼?我想要的只是從回購拉。

+0

你_still_ AREN」 t提供完整的錯誤信息 – Arafangion 2013-03-27 06:32:01

+0

你有什麼錯誤信息表明你正處於合併過程中,可能是因爲先前的git pull。解決合併,然後進行推送。 – Arafangion 2013-03-27 06:41:05

回答

2

正如你所說的,「git pull」相當於「git fetch + git merge」。

如果你不能做一個「混帳合併」,從邏輯上講,你不能做一個「混帳合併」,因爲它會在過程中做一個「混帳合併」。

您可能在Temp中擁有自己的文件,或者您的本地* .pidb文件可能已經存在並與上游分支發生衝突。

把這些文件放入版本控制只是要求麻煩,除非你想版本和協調差異這些文件(你真的不......),我建議你拒絕上游的變化,並告訴他們修理它。

順便說一句,備案,這是混帳拉的全輸出是什麼樣子,我做了一個簡單的測試庫來演示:

$ git --version 
git version 1.7.12.4 (Apple Git-37) 
$ git pull 
Updating e78f298..3067a12 
error: The following untracked working tree files would be overwritten by merge: 
    three.txt 
Please move or remove them before you can merge. 
Aborting 

在這種情況下,答案很簡單:

  • 將three.txt移到其他地方。 (也許是做git stash這樣做)
  • 執行git pull

然後,如果你的 'three.txt' 的版本是顯著,另外執行:

  • 移動three.txt回來。 (如果你沒有git stash,也許你可以做git stash pop
  • 試圖調和的分歧,使你不只是笨拙地覆蓋其他人的變化。
  • 提交的新變化。
0

你應該藏匿更改並

git stash 
git pull 
git stash pop 

你可能有衝突,事後,你可以手動修復後彈出他們。

另一種方法是,如果創建提交是有意義的(即您已完成所做的更改),則可以簡單地提交更改並在此之後進行提交。

+0

我試過了,我收到了諸如「xxxx:需要合併」和「xxxx:unmerged」的消息 – Qin 2013-03-27 06:17:53

+0

您應該提供完整的命令以及整個輸出,您可能想要編輯您的問題。 – 2013-03-27 06:19:38

+0

在我使用git pull之前,我做了git commit -a -m「abc」,但我不明白我需要手動修復。 – Qin 2013-03-27 06:23:04