2014-12-10 57 views
0

我們在Eclipse中的Git項目。有一個.classpath文件。由於我們有不同的機器,這對每個開發人員來說都不同。循環git的問題

因此,我們將.classpath添加到.gitignore。 現在,當我們的開發者之一做了git的拉動,它說錯誤,的.classpath需要合併。 我們不能添加它,因爲它不是在項目中。我們無法合併它,它不在項目中。

DIRTY INDEX:PROJ /的.classpath

我對重複的問題表示歉意,我們兜兜。我不知道爲什麼git太難了。我從來沒有在mercurial,svn或cvs中看到這樣的問題。這似乎太複雜了。

無奈之下,我們只是從的.gitignore刪除的.classpath,增加的.classpath,然後希望:

git add .classpath 
git pull 
git commit -m"I hate git" 

會工作。當然,這意味着每個提交都可能有.classpath,這也被搞砸了。

如果一個文件在.gitignore中,git怎麼可能告訴我們它需要合併?整個觀點就是把我們單獨留下!

+1

是文件被添加到的.gitignore之前跟蹤? – 2014-12-10 21:51:47

+0

是的,它被跟蹤,然後我們做了一個: git rm -r -cache .classpath – Dov 2014-12-10 21:52:18

+0

並且在執行'git rm --cached'之後犯了? – 2014-12-10 21:54:59

回答

0

這是因爲他必須解決存在的衝突,因爲他在接收忽略的同時對局部路徑進行了局部更改。

想象一下,如果它是源文件會是什麼。你的意思是忽略它,但是在他的分支上他有改變的地方。如果git只是吹走了文件,你可能會失去你的工作。

在你責怪git之前,也許你應該考慮閱讀文檔git-scm.com/book/,以便你瞭解git是如何工作和應該被使用的。這與盲目地嘗試隨意的事情,希望他們'做這份工作'相反。 Git不是CVS,SVNMercurial這裏沒有什麼內在的困難。如果有什麼問題,這裏更多的是Eclipse和Git。

解決這個另一種方式?暫時將文件複製到其他位置。然後恢復.classpath文件,使其與提交的文件相同。現在你應該能夠正確拉動。後來才恢復該文件,你應該是好..

+1

我不明白你在說什麼。 .classpath中的服務器上沒有任何內容。我們刪除.classpath,做一個git pull,它說有一個合併問題。有什麼合併?這不像我沒有嘗試閱讀文檔。我不明白髮生了什麼事。 – Dov 2014-12-10 22:12:48

+0

我從來沒有說過它在服務器上。問題在於你的用戶對他的分支上的文件的本地版本進行了修改,但仍然被跟蹤。這些更改與合併期間發生的文件刪除衝突。「Pull」是一個「提取」,後面跟着一個「合併」。如果您可以指定我說的內容中的哪一部分,您不明白它可能會有所幫助 – UpAndAdam 2014-12-11 00:01:27