Git-刪除文件


在Git中,刪除也是一個修改操作。

第一步,先添加一個新文件test.txt到Git並且提交:

➜  testcase git:(master) touch test.txt
➜  testcase git:(master) ✗ git add test.txt
➜  testcase git:(master) ✗ git commit -m "add test.txt"
[master a3ea391] add test.txt
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 test.txt

一般情況下,你通常直接在文件管理器中把沒用的文件刪了,或者用rm命令刪了:

➜  testcase git:(master) rm test.txt 

這個時候,Git知道你刪除了文件,因此,工作區和版本庫就不一致了,git status命令會立刻告訴你哪些文件被刪除了:

➜  testcase git:(master) ✗ git status
On branch master
Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git checkout -- <file>..." 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

➜  testcase git:(master) ✗ git rm test.txt
rm 'test.txt'
➜  testcase git:(master) ✗ git commit -m "remove test.txt"
[master 359e5b0] remove test.txt
 1 file changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 test.txt

另一種情況是刪錯了,因為版本庫里還有呢,所以可以很輕松地把誤刪的文件恢復到最新版本:

➜  testcase git:(master) ✗ git checkout -- test.txt
➜  testcase git:(master) ✗ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    new file:   test.txt

git checkout其實是用版本庫里的版本替換工作區的版本,無論工作區是修改還是刪除,都可以“一鍵還原”。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM