diff & patch 製作及打補丁

生成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。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章