2016-10-11 964 views
1

我對git仍然陌生。由於我不需要公開存儲庫,所以我選擇了Bitbucket。作爲我的桌面客戶端,我使用Atlassian Sourcetree。忽略Sourcetree中的已提交文件

我正在使用Eclipse IDE開發Java項目。就像所有人一樣,我不需要在更改後的文件中看到類文件,但是這些文件已經被提交併被拖入我的遠程存儲庫。
現在我需要SourceTree不要將這些類文件顯示爲已更改的文件,只要我對.java文件進行更改。

正如我通過這麼多的問題和答案所瞭解的那樣,.gitignore文件中的條目本身不能簡單地忽略類文件,因爲它們已經被提交和拉取。
爲此,據我所知,我應該做的是忽略源代碼樹中的文件並提交它。那麼只有.gitignore文件中的條目纔會做我們需要的。 (這是我的理解,如果我錯了,請糾正我)。

現在我的問題是,ignore選項灰顯;作爲社區建議首先選擇Stop Tracking選項並選擇ignore選項的解決方案。但是,當我停止跟蹤時,不會出現任何更改。
根據社區,該文件應標有藍色圖標。但這不是我的情況。即使我沒有更改圖標,我然後嘗試選擇忽略選項。但它仍然是灰色的。即使執行這些步驟後,當我對.java文件進行更改時,.class文件也會出現在已更改的文件列表中。

這裏有什麼問題?爲什麼我沒有完成這項工作?我做錯了什麼?

+0

將文件添加到存儲庫中已有的'.gitignore'不會執行任何操作。如果是這種情況,那麼你首先需要'git -rm'文件,按下,然後將它添加到'.gitignore'。 –

+0

謝謝。我可以'git -rm'包含所有類文件的整個文件夾 – vigamage

+0

只需使用通配符,例如'git -rm some/path/*。java' –

回答

2

我現在的問題是,ignore選項是灰色的;作爲社區建議首先選擇停止跟蹤選項並選擇忽略選項的解決方案。

據 「What is the difference between Stop Tracking and Discard File in git SourceTree」:

您應該使用Stop Tracking
之後,如果您看到Unstaged文件中列出的文件,您可以在SourceTree中使用right-click > Ignore...更新您的.gitignore文件以在將來忽略該文件。

在你的情況雖然,而不是添加文件逐一到.gitignore,平硐一個.gitignore在你的回購的根目錄,並添加:

*.class 
+0

停止跟蹤不會使文件進入未分檔的文件;所以我不能忽視它。 – vigamage

+0

在我的回購中,我有'.gitignore'文件和'.classpath'條目。我認爲這是正確的。不是嗎? – vigamage

+0

@vigamage然後切換到命令行並嘗試(用於測試)'git rm -r obj'(如果你的'.class'位於'obj'文件夾中)不需要通配符 – VonC

0

輸入git的狀態顯示您修改後的代碼更改。然後添加您的不需要的文件在。 gitignore。 最後添加你的文件並提交。