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...