生成patch過程:
1. Git branch a
2. git checkout a
3. modify
4. git commit -am
5. git diff master > patch (生成標準patch)
6. git format-patch -M master 01.patch (生成git專有patch)
應用patch過程:
1. git branch a
2. git checkout a
3. git apply patch(標準)/ git am 01.patch
1.git diff生成的標準patch
我們可以首先用git diff製作一個patch。本文示例的工作目錄裏最初有一個文件a,內容是“This is the file a.”,放置在master分支中。
# 爲了修改代碼,我們一般的做法是建立一個新分支:
$ git branch Fix
$ git checkout Fix
# 接下來我們在a文件裏面追加一行,然後執行git diff。
$ echo 'Fix!!!'>>a
$ git diff
$ git commit -a -m "this is fix patch"
# 這是一個非常典型的Patch式diff。這樣我們可以直接把這個輸出變爲一個Patch:
$ git diff master > patch
$ git checkout master
$ ls
a patch
# 接下來我們可以使用git apply來應用這個patch。當然了,實際應用中,我們不會這樣在一個分支建patch,到另一個分支去應用,因爲只要merge一下就好了。我們現在全當沒有這個Fix分支
$ git apply patch
$ git commit -a -m "Patch Apply"
看,現在我們在master中應用了這個補丁,即使有多個文件git diff 也能生成一個patch。