1.狀態簡覽
git status
命令的輸出十分詳細,但其用語有些繁瑣。 如果你使用git status -s
命令或git status --short
命令,你將得到一種更為緊湊的格式輸出。 執行git status -s
,狀態報告輸出如下:
$ git status -s
m readme
mm rakefile
a lib/git.rb
m lib/******git.rb
?? license.txt
新新增的未跟蹤檔案前面有??
標記,新新增到暫存區中的檔案前面有a
標記,修改過的檔案前面有m
標記。 你可能注意到了m
有兩個可以出現的位置,出現在右邊的m
表示該檔案被修改了但是還沒放入暫存區,出現在靠左邊的m
表示該檔案被修改了並放入了暫存區。 例如,上面的狀態報告顯示:readme
檔案在工作區被修改了但是還沒有將修改後的檔案放入暫存區,lib/******git.rb
檔案被修改了並將修改後的檔案放入了暫存區。 而rakefile
在工作區被修改並提交到暫存區後又在工作區中被修改了,所以在暫存區和工作區都有該檔案被修改了的記錄。
2.忽略檔案
一般我們總會有些檔案無需納入 git 的管理,也不希望它們總出現在未跟蹤檔案列表。 通常都是些自動生成的檔案,比如日誌檔案,或者編譯過程中建立的臨時檔案等。 在這種情況下,我們可以建立乙個名為.gitignore
的檔案,列出要忽略的檔案模式。 來看乙個實際的例子:
$ cat .gitignore
*.[oa]
*~
第一行告訴 git 忽略所有以.o
或.a
結尾的檔案。一般這類物件檔案和存檔檔案都是編譯過程中出現的。 第二行告訴 git 忽略所有以波浪符(~)結尾的檔案,許多文字編輯軟體(比如 emacs)都用這樣的檔名儲存副本。 此外,你可能還需要忽略 log,tmp 或者 pid 目錄,以及自動生成的文件等等。 要養成一開始就設定好 .gitignore 檔案的習慣,以免將來誤提交這類無用的檔案。
檔案.gitignore
的格式規範如下:
所謂的 glob 模式是指 shell 所使用的簡化了的正規表示式。 星號(*
)匹配零個或多個任意字元;[abc]
匹配任何乙個列在方括號中的字元(這個例子要麼匹配乙個 a,要麼匹配乙個 b,要麼匹配乙個 c);問號(?
)只匹配乙個任意字元;如果在方括號中使用短劃線分隔兩個字元,表示所有在這兩個字元範圍內的都可以匹配(比如[0-9]
表示匹配所有 0 到 9 的數字)。 使用兩個星號(*
) 表示匹配任意中間目錄,比如`a/**/z` 可以匹配a/z
,a/b/z
或 `a/b/c/z`等。
我們再看乙個 .gitignore 檔案的例子:
# no .a files 忽略.a檔案
*.a# but do track lib.a, even though you're ignoring .a files above 跟蹤.a檔案,忽略除.a檔案外的其他檔案
!lib.a
# only ignore the todo file in the current directory, not subdir/todo 忽略當前目錄下的todo檔案
/todo
# ignore all files in the build/ directory 忽略build目錄下的所有檔案
build/
# ignore doc/notes.txt, but not doc/server/arch.txt 忽略doc根目錄下的所有.txt檔案
doc/*.txt
# ignore all .pdf files in the doc/ directory 忽略doc目錄下的所有.pdf檔案
doc/**/*.pdf
Git學習筆記(二)
1.忽略檔案 git提供了一種可配性很強的機制來允許使用者將制定的檔案或目錄排除在版本控制之外,它會檢查 倉庫的根目錄下是否存在乙個名為.gitignore的檔案,如果存在的話就去一行一行的讀取這個檔案裡邊的內容並把每一行指定的檔案或目錄排除在版本控制之外。注意.gitignore中指定的檔案或目錄...
Git學習筆記(二)
1 分支 git branch m master mymaster m引數告訴git要執行分支移動 重新命名 操作。另外兩個引數分別是分支原名稱和新名稱。git branch 檢視分支。該命令沒有引數,git顯示本地版本庫中所有的本地分支名稱。結果中,前面帶星號的分支是當前檢出的分支,即當前工作目錄...
Git學習筆記 二
小白一枚。學習筆記。僅供參考。歡迎指錯。二 基本的git概念 git版本庫不僅儲存庫中所有檔案的完整副本,而且儲存版本庫本身的副本。git維護的兩個主要的資料結構 物件庫 object store 索引 index 索引 臨時的 動態的二進位制檔案,它描述的是版本庫的目錄結構。更準確地說,索引捕獲專...