回憶一下檔案的常見操作,新增檔案,修改檔案,刪除檔案等,新增和修改檔案都單獨討論過,現在我們來研究一下如何刪除檔案.
你可能會說刪除檔案還不簡單啊,直接rm -rf
即可,但是這僅僅是本地檔案被刪除了,對於git
來說,檔案並沒有被刪除.
還記得我們開篇介紹git
時就說過,一切操作皆版本
,對於新增是乙個版本,修改也是乙個版本,就連刪除都是乙個版本.
下面讓我們看一下git
中如何刪除檔案吧!
# 檢視當前檔案列表
$ ls
file1.txt file2.txt file3.txt newfile.txt test.txt
# 新建待刪除檔案
$ touch delete.txt
# 再次檢視當前檔案列表,確保新建檔案成功
$ ls
delete.txt file2.txt newfile.txt
file1.txt file3.txt test.txt
# 檢視當前檔案狀態: 新檔案 `delete.txt` 還沒被跟蹤
$ git status
on branch master
untracked files:
(use "git add ..." to include in what will be committed)
.ds_store
delete.txt
nothing added to commit but untracked files present (use "git add" to track)
# 新增新檔案 `delete.txt`
$ git add delete.txt
# 檢視檔案狀態: 已新增到暫存區,待提交到版本庫
$ git status
on branch master
changes to be committed:
(use "git reset head ..." to unstage)
new file: delete.txt
untracked files:
(use "git add ..." to include in what will be committed)
.ds_store
# 提交新檔案 `delete.txt`
$ git commit -m "add delete.txt"
[master 7df386a] add delete.txt
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 delete.txt
# 再次檢視檔案狀態: 已經沒有新檔案 `delete.txt` 的更改資訊
$ git status
on branch master
untracked files:
(use "git add ..." to include in what will be committed)
.ds_store
nothing added to commit but untracked files present (use "git add" to track)
$
以上操作,我們簡單建立delete.txt
檔案,新增(git add
)並提交(git commit
) 該檔案,完成準備工作後,開始刪除檔案!
# 刪除前檔案列表
$ ls
delete.txt file2.txt newfile.txt
file1.txt file3.txt test.txt
# 刪除剛剛建立的檔案 `delete.txt`
$ rm delete.txt
# 刪除後檔案列表
$ ls
file1.txt file2.txt file3.txt newfile.txt test.txt
# 當前檔案狀態: `delete.txt` 檔案已被刪除,且未新增到暫存區
$ 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: delete.txt
untracked files:
(use "git add ..." to include in what will be committed)
.ds_store
no changes added to commit (use "git add" and/or "git commit -a")
$
本地刪除delete.txt
檔案後,再次檢視檔案狀態git status
發現git
給了我們兩條建議,其中一條git checkout --
我們很熟悉,就是丟棄工作區的更改,此時此景下如果丟棄刪除操作,相當於撤銷刪除,難怪說刪除也是乙個版本呢!
現在我們重點來看第一條建議git add/rm
,rm
是remove
單詞的縮寫,即刪除檔案.
# 刪除檔案
$ git rm delete.txt
rm 'delete.txt'
# 檢視檔案狀態: `delete.txt` 檔案待提交
$ git status
on branch master
changes to be committed:
(use "git reset head ..." to unstage)
deleted: delete.txt
untracked files:
(use "git add ..." to include in what will be committed)
.ds_store
# 提交檔案
$ git commit -m "remove delete.txt"
[master 6298070] remove delete.txt
1 file changed, 0 insertions(+), 0 deletions(-)
delete mode 100644 delete.txt
# 再次檢視檔案狀態
$ git status
on branch master
untracked files:
(use "git add ..." to include in what will be committed)
.ds_store
nothing added to commit but untracked files present (use "git add" to track)
$
刪除檔案和新增檔案類似,都是一次commit
,本地檔案的任何更改都要新增到暫存區,然後提交到版本庫.
刪除檔案和新增檔案類似邏輯,git rm
刪除檔案後,依然需要git commit
提交版本.
git 入門教程之配置 git
安裝完成後,還需要最後一步配置就可以愉快使用了,在命令列輸入 git config global user.name your username git config global user.email example example.com 因為git是分布式版本控制系統,所以每個機器都必須自報家...
git 入門教程之知識速查
從零開始建立專案 示例 git init將已有專案拷貝到本地 示例 git clone git github.com snowdreams1006 snowdreams1006.github.io.git將新檔案或已修改檔案新增到快取區 示例 git add readme.md檢視當前檔案是否和上次...
git 入門教程之遠端倉庫
如果說本地倉庫已經足夠個人進行版本控制了,那麼遠端倉庫則使多人合作開發成為可能.如果你只是打算自己使用git,你的工作內容不需要發布給其他人看,那就用不到遠端倉庫的概念.git是分布式版本控制系統,分布式意味著同乙個git 倉庫可以部署在不同的機器上,正如 雞生蛋蛋生雞 問題一樣,不論如何,先要有乙...