我的Git筆記第二篇—文件管理

目  錄

2.1  文件添加及提交

2.2  文件刪除

2.3 文件重命名

2.4 忽略指定格式的文件

2.5 撤銷修改

2.6 差異比較

2.7 壓縮倉庫


2.1  文件添加及提交

文件添加

添加某個文件:git add file.c

添加所有文件:git add .

作用:

    1)已經追蹤的文件:將修改從工作區保存到暫存區

    2)未追蹤的文件:加入git追蹤範圍

文件提交

將暫存區的所有內容提交到版本庫

— 單步提交:git commit -m "commit info"

— 一次性提交:git commit -a

— 修改最後一次提交:git commit --amend #該提交會生成一個新的commit對象,替換先前的commit對象

注意:如果修改沒有保存到暫存區,是不會提交到版本庫的。

 

2.2  文件刪除

1)從工作目錄和暫存區中刪除

方式一:

    首先從工作目錄中刪除,使用 rm -rf file.c

    然後使用 git add file.c

    最後進行提交 git commit -m "delete file.c"

方式二:

    首先使用 git rm -f file.c

    再進行提交 git commit -m "delete file.c"

避免文件出現在未跟蹤清單中

刪除並提交後,該文件就不再被版本庫追蹤,但是版本庫仍然有這些文件的快照

2)從暫存區中刪除,工作目錄保留

使用命令:git rm --cached file.c

包括:庫文件、可執行文件、日誌、臨時文件

3)從版本庫中刪除:版本回退到錯誤提交之前的版本

撤銷提交到暫存區:git reset --soft SHA-1(例如回退到上一個版本時SHA-1=HEAD^)

撤銷提交到工作區:git reset --mixed SHA-1

將工作區、暫存區和版本庫恢復到指定版本(不建議使用):git reset --hard SHA-1

注意:刪除也被認爲是修改,可以從版本庫中還原。

 

2.3 文件重命名

文件重命名:git mv old_file new_file,然後進行提交

重命名實際操作

文件移動:mv old_file new_file

刪除舊文件:git rm old_file

添加新文件:git add new_file

 

2.4 忽略指定格式的文件

有些文件不必提交到版本庫中

— 可執行文件、日誌文件、臨時文件、庫文件

忽略文件模式:glob模式匹配

— 忽略以#開始的行

— 忽略某種格式結尾文件:*.[ao]

— 某個庫文件除外,不忽略:!clib.a

— 忽略臨時文件:*~

— 忽略根目錄下的某個文件:/text

— 忽略某個目錄下的所有文件:libs/、libs/*.a

手動創建.gitignore文件

 

2.5 撤銷修改

撤銷工作區的提交

git checkout file.c

讓文件回到最近一次commit或add的狀態

若文件還沒添加到暫存區:撤銷後和版本庫一樣

若文件已添加到暫存區且做了修改:回到暫存區狀態

撤銷暫存區的內容

git reset HEAD file.c

將暫存區的修改撤銷掉,重新放回工作區

撤銷版本庫的提交

git reset --hard SHA-1(HEAD^)

回退版本,並刷新到工作區中,徹底丟棄先前修改的內容

先前的提交對象還在版本庫中孤獨地存在着(可以壓縮版本庫,釋放佔用空間)

 

2.6 差異比較

比較工作區和暫存區差異

git diff #查看尚未暫存文件有哪些新的修改

比較暫存區和版本庫差異

git diff --cached [HEAD]

git diff --staged SHA-1

查看已暫存文件和上次提交的快照之間的差異

比較工作區和版本庫差異

git diff HEAD(SHA-1) #查看尚未暫存文件和最新提交文件快照的區別

比較兩個版本之間差異

git diff 一個版本的SHA-1 另一個版本的SHA-1 #查看不同版本之間的差異

 

2.7 壓縮倉庫

壓縮版本庫

在日常運行中,git快照會佔用磁盤空間

git會在增量存儲單元中存儲修改

通過git gc命令壓縮增量存儲單元,節省磁盤空間

快照的存儲

對於修改的內容:做快照處理並保存

對於未修改的文件:做引用處理

查看git佔用磁盤空間大小:du -sh

發佈了10 篇原創文章 · 獲贊 1 · 訪問量 661
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章