簡體   English   中英

從以前的所有git提交中刪除.idea目錄

[英]Remove .idea directory from all previous git commits

我在我的本地Git存儲庫中有~50次提交。 無意中在初始提交中,我已經包含.idea文件夾,現在我必須從初始提交中刪除該文件夾中的所有文件。 是否有可能通過任何機會實現這一目標?

我嘗試了以下命令,但轉換為單獨的提交而不鏈接到以前的提交:

$ echo '.idea' >> .gitignore
$ git rm -r --cached .idea
$ git add .gitignore
$ git commit --amend

您可以使用filter-branch執行此操作:

cp -r .idea .idea.bak
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch -r .idea' --prune-empty --tag-name-filter cat -- --all

這將刪除所有過去提交的.idea 在此之后,您可以像以前一樣更新.gitignore文件,以避免將來錯誤地添加.idea

請注意,這會重寫存儲庫的歷史記錄。 如果它是公開的並且還有其他合作者,那么請仔細考慮這是否真的值得做。

有關詳細信息,請訪問https://help.github.com/articles/removing-sensitive-data-from-a-repository/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM