在git中,刪除也是乙個修改操作,我們實際操作一下吧,先新增乙個檔案test.txt到git並且提交
$ git add test.txt
$ git commit -m "add test.txt"
[master cc0f8c9] add test.txt
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 test.txt
一般情況下 ,你通常直接在檔案管理器中把沒用的檔案刪了,或者用rm命令刪了:
$ rm test.txt
這個時候,git知道你刪除了檔案,因此,工作區和版本庫就不一致了,git status命令會立刻告訴你哪些檔案被刪除了:
$ git status
on branch master
changes not staged for commit:
(use "git add/rm ..." to update what will be committed)
(use "git checkout -- ..." to discard changes in working directory)
deleted: test.txt
no changes added to commit (use "git add" and/or "git commit -a")
現在你有兩個選擇,一是確實要從版本庫中刪除改檔案,那就用git rm刪掉,並且git commit:
$ git rm test.txt
rm 'test.txt'
$ git commit -m "remove test.txt"
[master d2319a1] remove test.txt
1 file changed, 0 insertions(+), 0 deletions(-)
delete mode 100644 test.txt
現在檔案就從版本庫中被刪除了
另一種情況是刪錯了,因為版本庫里還有呢,所以可以很輕鬆的把誤刪的檔案恢復到最新版本。
$ git checkout -- test.txt
git checkout其實是用版本庫里的版本替換工作區的版本,無論工作區是修改還是刪除,都可以「一鍵還原」
Git 時光穿梭機01
看這篇文章之前可以先閱讀 建立版本庫這篇文章 我們已經成功地新增並提交了乙個readme.txt檔案,現在是時候繼續工作了,於是,我們繼續修改readme.txt,改成如下內容 git is a distributed version control system git is free softw...
git reflog 時光穿梭機
一 問題描述 二 解決 小白花費一周時間做了git log如下所示6個功能。commit的資訊就是做了6個功能,每個功能對應乙個commit的提交,分別是feature 1 到 feature 6 然後執行強制回滾,git reset hard 2216d4e。回滾到了feature 1上,並且回滾...
Git 版本穿梭 時光穿梭機
當你玩遊戲時,每玩一段時間都會存一下檔以免前面的進度丟失,在打厲害 boos 前,你也會選擇存檔,以免打不過而丟失進度,這個存檔被稱為 快照 git 允許你commit後的倉庫自由前進後退版本,當你從 0 到 1 完成乙個專案時,其中難免會出現修改多次,還有可能會出現檔案誤刪丟失等問題,只要你正確的...