git學習筆記 移除檔案和移動檔案

2021-09-29 16:02:05 字數 2553 閱讀 2770

1.移除檔案

要從 git 中移除某個檔案,就必須要從已跟蹤檔案清單中移除(確切地說,是從暫存區域移除),然後提交。 可以用git rm命令完成此項工作,並連帶從工作目錄中刪除指定的檔案,這樣以後就不會出現在未跟蹤檔案清單中了。

如果只是簡單地從工作目錄中手工刪除檔案,執行git status時就會在 「changes not staged for commit」 部分(也就是 未暫存清單)看到:

$ rm projects.md

$ git status

on branch master

your branch is up-to-date with 'origin/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: projects.md

no changes added to commit (use "git add" and/or "git commit -a")

然後再執行git rm記錄此次移除檔案的操作:

$ git rm projects.md

rm 'projects.md'

$ git status

on branch master

changes to be committed:

(use "git reset head ..." to unstage)

deleted: projects.md

下一次提交時,該檔案就不再納入版本管理了。 如果刪除之前修改過並且已經放到暫存區域的話,則必須要用強制刪除選項-f(譯註:即 force 的首字母)。 這是一種安全特性,用於防止誤刪還沒有新增到快照的資料,這樣的資料不能被 git 恢復。

另外一種情況是,我們想把檔案從 git 倉庫中刪除(亦即從暫存區域移除),但仍然希望保留在當前工作目錄中。 換句話說,你想讓檔案保留在磁碟,但是並不想讓 git 繼續跟蹤。 當你忘記新增.gitignore檔案,不小心把乙個很大的日誌檔案或一堆.a這樣的編譯生成檔案新增到暫存區時,這一做法尤其有用。 為達到這一目的,使用--cached選項:

$ git rm --cached readme
git rm命令後面可以列出檔案或者目錄的名字,也可以使用glob模式。 比方說:

$ git rm log/\*.log
注意到星號*之前的反斜槓\, 因為 git 有它自己的檔案模式擴充套件匹配方式,所以我們不用 shell 來幫忙展開。 此命令刪除log/目錄下擴充套件名為.log的所有檔案。 類似的比如:

$ git rm \*~
該命令為刪除以~結尾的所有檔案。

2.移動檔案

要在 git 中對檔案改名,可以這麼做:

$ git mv file_from file_to
此時檢視狀態資訊,也會明白無誤地看到關於重新命名操作的說明,如下圖所示,將readme.md重新命名為readme:

$ git mv readme.md readme

$ git status

on branch master

changes to be committed:

(use "git reset head ..." to unstage)

renamed: readme.md -> readme

其實,執行git mv就相當於執行了下面三條命令,將readme.md重新命名為readme,將readme.md從暫存區移除,將readme加入暫存區:

$ mv readme.md readme

$ git rm readme.md

$ git add readme

Git學習筆記 2 檔案狀態

剛工作使用svn的時候,基本沒有考慮過檔案的狀態,以為無非是檢出 提交 撤回,對版本控制理解的不夠深入,其實svn和git一樣,也有add相關操作。git檔案狀態的轉換 git下每個檔案狀態分為4個階段 未追蹤 untracked 未加入git索引時的狀態 暫存 staged 檔案的變更已進入暫存區...

git學習筆記 刪除檔案

在git中,刪除也是乙個修改操作,我們實戰一下,先新增乙個新檔案test.txt到git並且提交 git add test.txt git commit m add test.txt master b84166e add test.txt 1 file changed,1 insertion cre...

python學習筆記 17 檔案和流

1.開啟檔案 open用法 open name mode buffering 第乙個引數檔名,返回乙個檔案物件 open r d 123.txt traceback most recent call last file line 1,in open r d 123.txt ioerror errno...