>[info] git rm
功能:刪除文件。
在Git中,刪除也是一個修改操作,我們實戰一下,先添加一個新文件test.txt到Git并且提交:
~~~
$ git add test.txt
$ git commit -m "add test.txt"
[master 94cdc44] add test.txt
1 file changed, 1 insertion(+)
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 <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`:
>[info] 這里講錯了吧,既然刪除文件也是一種修改,那么`git add <file>` ,再`git commit`也可以從版本庫刪除文件吧,上面都給出提示了:use "git add/rm <file>..." to update what will be committed。
~~~
$ git rm test.txt
rm 'test.txt'
$ git commit -m "remove test.txt"
[master d17efd8] remove test.txt
1 file changed, 1 deletion(-)
delete mode 100644 test.txt
~~~
現在,文件就從版本庫中被刪除了。
另一種情況是刪錯了,因為版本庫里還有呢,所以可以很輕松地把誤刪的文件恢復到最新版本:
~~~
$ git checkout -- test.txt
~~~
`git checkout`其實是用版本庫里的版本替換工作區的版本,無論工作區是修改還是刪除,都可以“一鍵還原”。
小結
命令`git rm`用于刪除一個文件。如果一個文件已經被提交到版本庫,那么你永遠不用擔心誤刪,但是要小心,你只能恢復文件到最新版本,你會丟失最近一次提交后你修改的內容。
- 說明
- git配置
- git與github的關系
- 基礎概念
- git命令
- git init
- git status
- git diff
- git log
- git reflog
- git add
- git commit
- git reset
- git checkout
- git rm
- git stash
- git remote
- git push
- git clone
- git branch
- git fetch
- git merge
- git rebase
- git pull
- git tag
- 建立版本庫
- 分支合并
- 遠程庫別名
- Pull requests
- 擴展知識
- 功能文件
- 差異看法
- 注意細節
- github移動端
- git工作系統理解
- 倉庫嵌套問題
- 倉庫的使用問題
- 常用命令
- 學習資料
- 學習總結
- 示例文件
- README.md
- CONTRIBUTING.md
- .gitignore
- coding
- 大小寫問題
- 如何貢獻
- 使用賬號密碼clone
- git目錄分析
- HEAD
- 代碼部署問題
- 開發流程
- 指定公鑰文件