2013-04-06 63 views

回答

2

簡單的方法來從當前版本中刪除:

使用git -rm -r --cached

的--cached選項將保持在本地工作目錄中的文件或目錄,並從混帳刪除它。

git help rm

--cached 
    Use this option to unstage and remove paths only from the index. 
    Working tree files, whether modified or not, will be left alone. 

https://www.kernel.org/pub/software/scm/git/docs/git-rm.html

從所有版本中刪除:

如果你真的需要刪除的文件/從所有修訂的目錄,看看這個線程和專用於此的git幫助頁面。

Remove sensitive files and their commits from Git history

https://help.github.com/articles/remove-sensitive-data

+0

這不會刪除所有修訂中的文件夾。 – jszakmeister 2013-04-06 23:34:47

+0

@jszakmeister好點,我已經更新了我的答案 – jszobody 2013-04-06 23:39:37

1

二者必選其一git -rm -r --cached像jszobody建議,或做git reset HEAD這是一個有點少打字和git status建議從刪除文件的方式提交(前實際調用git commit)。這就是所謂的暫停。

但是,git commit之後沒有簡單的方法來刪除這些文件夾。如果上次提交的提交更改不想保留,請將本地副本修改爲您希望的狀態,請運行git add .並執行git commit --amend。如果不必要的更改是在進一步提交或多次提交中提交的,則必須通過git rebase -i進行重定位。我建議你閱讀關於它的手冊頁或尋找一些教程。

如果您已將更改推送至github,則必須在您的rebase或修改後運行git push -f。如果你在團隊中工作,重新推遲提交的提交是一個壞主意,因爲它會給你的提交不同於你的團隊其他成員的提交。

相關問題