1
我做了一個錯誤的提交,目錄中有很多文件(/vendor/bundle/*
)。之後,我試圖通過更改.gitignore
來修復它,所以我又做了2次提交。從過去的git提交中刪除文件
如何從以前的所有提交中刪除/vendor/bundle/*
目錄(不影響任何工作文件或其他提交的文件)?
我做了一個錯誤的提交,目錄中有很多文件(/vendor/bundle/*
)。之後,我試圖通過更改.gitignore
來修復它,所以我又做了2次提交。從過去的git提交中刪除文件
如何從以前的所有提交中刪除/vendor/bundle/*
目錄(不影響任何工作文件或其他提交的文件)?
您可以使用一個交互式的rebase從你過去的刪除目錄提交:
# Go back 3 commits
git rebase -i HEAD~3
你會看到你的編輯器中打開與提交的清單:
pick <HEAD~2> Commit /vendor/bundle/*
pick <HEAD~1> OMG ignore /vendor/bundle/*!
pick <HEAD> OMG ignore /vendor/bundle/* again!
選擇提交哪裏您提交目錄並用edit
替換pick
:
edit <HEAD~2> Commit /vendor/bundle/*
pick <HEAD~1> OMG ignore /vendor/bundle/*!
pick <HEAD> OMG ignore /vendor/bundle/* again!
rebase會回滾到提交併停止。然後執行以下操作:
git rm -r -- /vendor/bundle
git commit --amend --no-edit
git rebase --continue
你可以閱讀更多有關從FREE online Pro Git book重寫提交歷史。