git刪除本地倉庫文件 git如何恢復(fù)本地刪除的文件夾?
git如何恢復(fù)本地刪除的文件夾?git checkout . #本地所有修改的。沒有的提交的,都返回到原來的狀態(tài)git stash #把所有沒有提交的修改暫存到stash里面??捎胓it stash
git如何恢復(fù)本地刪除的文件夾?
git checkout . #本地所有修改的。沒有的提交的,都返回到原來的狀態(tài)git stash #把所有沒有提交的修改暫存到stash里面??捎胓it stash pop回復(fù)。git reset --hard HASH #返回到某個節(jié)點,不保留修改。git reset --soft HASH #返回到某個節(jié)點。保留修改
如何在git中刪除指定的文件和目錄?
拉取遠程的Repo到本地(如果已經(jīng)在本地,可以略過)
$ git clone xxxxxx
在本地倉庫刪除文件
$ git rm 我的文件
在本地倉庫刪除文件夾
$ git rm -r 我的文件夾/
此處-r表示遞歸所有子目錄,如果你要刪除的,是空的文件夾,此處可以不用帶上-r。
提交代碼
$ git commit -m"我的修改"
推送到遠程倉庫(比如GitHub)
$ git push origin xxxxxx
又不小心把.git文件夾也刪掉了,還能找回嗎?
如果只有本地一份repo,復(fù)制為新文件夾,刪除.git后重新init,這個比較easy。話說你反正沒公開,歷史丟掉也不是很有所謂。
如果有多人協(xié)作和遠程bare repo,那么這種事最好不要干了。
一定要刪歷史記錄的話,filter-branch也行,不過我也只有笨的辦法:git status羅列下已刪除的文件列表,全部填到 filter-branch 命令行的 rm 部分里面就是。期待有人答一份。當(dāng)然聰明的辦法的思路是有的:借助bash編程把已刪除文件名自動羅列到命令行里。不過暫時沒條件就答不出了。
附:
可以羅列出已刪除的文件,這些就是你想要清理掉的。
方法可以是這樣:
初步確認。不過備份好點。
再補充下:
filter-branch里面使用 git rm --ignore-unmatch 可以避免過多警告。
--prune-empty可以在一個提交的所有文件都被清空之后摘除這個提交。
同樣的,git rm a b c d/e/f/g 可以刪掉這些不同位置的文件,git rm -rf a b c d可以文件、文件夾都刪掉。
所以無論你的問題是什么,只有一件事要做,提供一個文件名列表出來,送給git filter-branch ..."git rm ..." 語句去做。