Git--使用2

一:使用.gitignore忽略某些文件git


文件.gitignore的格式規範以下:app

  • 全部空行或以註釋符號#開頭的行都會被Git忽略
  • 可使用標準的glob模式匹配
  • 匹配模式最後跟反斜槓(/)說明要忽略的是目錄
  • 要忽略指定模式之外的文件或目錄,能夠在模式前加驚歎號(!)取反

通常時候咱們總會有一些文件無需歸入Git的管理,也不但願他們總出如今未跟蹤文件列表。一般都是些自主生成的文件,像是日誌或者spa

編譯過程當中建立的等等。咱們能夠建立一個.gitignore的文件,列出要忽略的文件模式,來看一個例子:日誌


這裏忽略了工做目錄下的.test文件,以.o或.a結尾的文件。orm


若是不使用.gitignore,能夠看到,顯示.test文件未跟蹤,下面添加.gitignore文件源碼


能夠看到工做目錄很乾淨的。it

若是使用git下載Linux內核源碼,你能夠在工做目錄下看到.gitignore文件,cat .gitignore,截了一段:編譯



二:git diff 生成patchform


git-diff列出本身本地的tree中已修改,但卻未commit的改動,這也是產生patch的方式。注意,使用git-diff產生的patch都應該在patch(1)時test

指定-p1,或者直接使用git-apply打補丁。


選項:

--clour diff 語法高亮

--ignore-space-at-eol 忽略行尾的whitespace

--ignore-space-change 忽略行尾的whitespace,而且認爲全部的whitespace都是同樣的

--ignore-all-space 比較兩行的時候,徹底忽略whitespace。這樣,即便是一行有不少whitespaces,另外一行文字同樣可是沒有whitespace,

git也認爲這兩行內容一致。


這裏介紹一下patch文件格式:補丁頭

補丁頭是分別由---/+++開頭的兩行,用來表示要打補丁的文件。---開頭表示舊文件,+++開頭表示新文件。

一個補丁文件中的多個補丁

一個補丁文件中可能包含以---/+++開頭的不少節,每一節用來打一個補丁。因此在一個補丁文件中能夠有好多個補丁。

塊是補丁中要修改的地方。它一般由一部分不用修改的東西開始和結束。他們只是用來表示要修改的位置。他們一般以@@開始,結束於

另外一個塊的開始或者一個新的補丁頭。

塊的縮進

塊會縮進一列,而這一列是用來表示這一行是要增長仍是要刪除的。

塊的第一列

+號表示這一行是要加上的

-號表示這一行是要刪除的

沒有加號也沒有減號表示這裏只是引用的而不須要修改


三:git apply打補丁


git-apply至關於patch(1)命令,不過git-apply專門用來apply那些用git-diff生成的補丁

選項:

--check 不真正打補丁,而只是檢查補丁是否能完美的打上

-v verbose模式

-R reverse模式,也就是拉出這個補丁來





四:git log 查看提交歷史記錄


運行git log:


git會按提交時間列出全部的更新,最近的更新排在最上邊。每次更新都會有一個SHA-1校驗,做者的名字和電子郵件地址,提交時間,最

後一個段落顯示提交說明。

選項說明:

-p 按補丁格式顯示每一個更新之間的差別

--stat 顯示每次更新的文件修改統計信息

--shortstat 只顯示--stat中最後的行數修改添加移除統計

--pretty 使用其餘格式顯示歷史提交信息。可用的選項包括online,short,full,fuller和format。

下邊是加-p選項,按補丁格式查看每一個更新之間的差別

$git log -p

相關文章
相關標籤/搜索