2015-10-19 74 views
1

我使用Eclipse作爲本地開發和GitHub作爲我的遠程git回購。 Eclipse會在我的遠程回購中生成一些我不想要的工件,但我忘記將這些工件添加到我的.gitignore文件中。我把一切交給遠程GitHub庫,實現了以下物品被推(再次,無意的):如何使用gitignore更正遠程GitHub回購協議?

myapp/ 
    <lots of other stuff> 
    .classpath --> undesired 
    .settings  --> undesired 
    .project  --> undesired 
    bin/   --> undesired 

等我回去,並添加以下到我的.gitignore

# Eclipse 
.classpath 
.project 
.settings 
bin/ 

然後我承諾&推。令我驚訝的是,這些文件仍然在我的遠程倉庫中。我本來預計以下行爲:

  1. 我推.gitignore變化的GitHub
  2. GitHub上看到,有在其myapp回購違反新.gitignore
  3. GitHub上的條款的文件刪除這些文件/從回購現在
  4. 當我去myapp GitHub上的目錄,我沒有看到他們了

這是不是的情況?這裏的解決方法是什麼?

回答

0

Git不會解析每個提交上的.gitignore文件,當然,它不會將.gitignore中的更改應用於提交中的整個存儲庫。

所以你需要手動刪除文件(git rm)。

如果你需要有這個文件在你的文件系統使用git rm --cached

+1

此外,如果你想從你的整個歷史中刪除這些文件,你可以使用BFG回購清潔:https://rtyley.github.io/bfg-repo-cleaner /。請記住修改SHA1,因此您需要仔細考慮編輯舊歷史是否適合您的項目以及如何將該消息共享/傳遞給其他克隆。 –

相關問題