2012-07-15 191 views

回答

1

git filter-branch可能是有用的。這允許你重寫一系列過去的提交,改變提交的內容。

如果您所做的更改從未離開您的本地存儲庫,那麼這將起作用。如果您在某個地方推動了有問題的更改,或者如果有人從您那裏推出了這些更改,那麼您在所有人的存儲庫中都會遇到更大的問題。

但是,要解決你的本地庫:

git filter-branch --index-filter 'git rm --cached --ignore-unmatch bad-file1.txt bad-file2.txt' master..abc 

這意味着:

  • git filter-branch:讓我們重新編寫一些提交!

  • --index-filter:更改每個提交的索引而不實際在磁盤上檢出它。

  • 'git rm --cached --ignore-unmatch bad-file1.txt bad-file2.txt':對於每一個承諾,unstage兩個文件,如果它們存在。

  • master..abc:做這個分支上所有提交ABC回到它從主分支分叉。您也可以說「master~3」來重寫過去3次提交或其他任何range of revisions。您還可以使用「-- --all」(兩個破折號,空格,兩個破折號「all」)重寫存儲庫中的所有內容。

+0

這就是它。謝謝,我不小心檢查了日誌文件和tmp文件:/ – Bill 2012-07-15 17:02:06