Git 教程 - 檔案操作
Jinku Hu
2023年1月30日
在本教程中,你將學習 git 中的檔案操作比如如刪除、移動和重新命名檔案。
Git 刪除檔案
最簡單的將檔案從跟蹤中刪除並最終從儲存庫中刪除的方法是 git rm
。
$ git rm tes2.txt
rm 'test2.txt'
執行該命令後,test2.txt
將從工作資料夾中刪除該檔案,並且此刪除資訊已新增到暫存區。
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
deleted: test2.txt
Git 重新命名檔案
如果直接在工作區中重新命名檔案,Git 將此操作視為兩個操作,第一是刪除舊檔案,第二是將新命名的檔案新增到工作區中。
$ 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: test1.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
test1_rename.txt
no changes added to commit (use "git add" and/or "git commit -a")
這種操作的缺點是它會破壞檔案的版本歷史記錄,此後你無法檢視此重新命名之前的歷史修改記錄,這在版本控制中是不可取的。
Git 有一個重新命名命令來解決這個歷史修訂記錄連結斷開的問題 - mv
,
$ git mv test1.txt test1_rename.txt
mv
的意思就是 move
,在這裡,重新命名檔案也就意味著 test1.txt
檔案被移動重新命名為 test1_rename.txt
如果你現在檢查 git status
,renamed
就會出現了,
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
renamed: test1.txt -> test1_rename.txt
Git 移動檔案
與重新命名檔案類似,在 git 中移動檔案也使用 git mv
命令,只是目標資料夾與被移動檔案原本的資料夾不同。
$ git mv test1_rename.txt move/test1.txt
這裡,資料夾 move
是目標資料夾,test1.txt
是檔案 test1_rename.txt
移動後的新檔名。
我們來看看 git status
,
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
renamed: test1_rename.txt -> move/test1.txt
你可以看到,它也是一個 renamed
操作,只是目的地資料夾不同。