2013-09-26 60 views
0

我通過終端使用的計算機甲創建)建立一個git倉庫,b)一種index.html文件添加到回購,c)加入的遠程來源,d)推到所述遠程來源。一切都好。Eclipse項目和git

然後,我用計算機乙克隆通過終端該存儲庫。然後,我打開Eclipse(配備了Egit),並在由克隆過程創建的文件夾中創建了一個新項目。然後我使用Eclipse將任何更改推送到遠程原點。

回到計算機A,我用Eclipse創建原回購文件夾中的項目,然後我試圖從遠程產地拉,以獲取使用計算機B.

當推的變化

Eclipse不會這樣做。它抱怨我有諸如.settings.project和類似的項目,並且由於它們不受版本控制,它不會通過從服務器獲取文件來覆蓋它們。我不得不手動刪除這些文件(通過終端),然後Eclipse按預期工作。

請提供關於如何避免這種情況的信息。

  • 我應該在Eclipse中建立本地回購,然後將其推送到遠程的原點上,所以項目如(.settings)是版本控制,(如果有的話),如何將這項尋釁滋事的人克隆回購並使用不同版本的Eclipse?

  • 我應該gitignore那些項目?

  • 我應該讓Eclipse將其自己的關聯文件保存到另一個文件夾(不是我知道如何做到這一點,我只知道NetBeans這樣做)?

+0

我喜歡在源代碼控制中包含.project文件。從eclipse中的git repo視圖中,您應該能夠克隆,然後導入項目,而不必第二次創建它。一般情況下,我會排除其他可能與系統相關的設置文件。 – aet

回答

0

看起來像你沒有gitignored eclipse文件。

也許,當你通過egit提交/推送時,你也提交併推送那些已經在你的機器A中未版本化的文件,所以git抱怨,因爲你要求覆蓋現有的未版本控制的文件。

強烈建議您gitignore這些日食的文件。您可以在github gitignore repo中看到.gitignore文件的示例。

希望它有幫助。

0

它抱怨,因爲如果你拉從遠程更改將覆蓋本地文件。那就是問題所在。另一個回答者有權利。您最好添加所有的eclipse項目文件,並將.settings和classpath目標文件添加到gitignore中。在創建項目之前,您也可以爲您的計算機使用全局gitignore。例如,你可以使用maven,然後你只能從git倉庫中給出的pom.xml-s導入你的項目。 我使用它們相同。 Egit和其他guis有點太複雜,無法使用。在不一致的狀態下,Git存儲庫可以很容易地使用舊式終端來解決問題。喜歡,重新設定,合併衝突。學習曲線是穩定的。 現在,如果在第一臺計算機上保存了原件的備份,並在稍後修復了項目後克隆了項目,則可以解決問題。在第二個git中刪除所有這些文件,但使用--cached選項來避免刪除它們。在你這樣做之前,檢查一下git remove的幫助!你做完這些之後,把它們放進去。gitignore作爲帶有通配符的文件名。您也可以在用戶文件夾中使用全局gitignore文件。創建的.gitconfig文件,你可以指定地址全局忽略下列要求:

[core] 
    excludesfile = ~/.gitignore_global 

不僅僅是創建這樣的.gitignore_global:

/nbproject 
/bin 
/build.xml 
.idea 
chess.iml 
target/ 
bin 

(此文件是理念和NetBeans,你可以在這裏添加eclipse項目文件)

您也可以爲每個項目配置.gitignore文件。您可以將它們提交到存儲庫,因此在下一臺計算機上,您不必再次執行此操作。我認爲最好的方式是擁有一個dotfiles git存儲庫,它是您的主目錄的git倉庫和其中的點文件。我也將它用於不同的Windows和Linux發行版。 就是這樣。您應該將所有配置保存在安全的地方。源代碼管理可以做到這一點。但不要私人的東西公開一個地方! ;)

哦,我想提一下,你可以在你的.gitignore文件中有.gitignore條目。當你不想觸摸一個倉庫,但是需要添加一個gitignore來隱藏某些東西,尤其是從給定的倉庫中隱藏某些東西時,這可能非常有用。