修補程式是一個文字檔案,其內容類似於git diff
,但與程式碼一樣,它也有關於提交的後設資料; 例如提交ID,日期,提交訊息等。我們可以從提交建立一個修補程式,而其他人可以將它們應用到他們的儲存庫。
假設我們在專案實現了一個strcat
函式。並將編寫的程式碼的路徑並行送給其他開發人員。 然後,其他開發人員可以將接收的修補程式應用到自己的程式碼中。
我們使用git format-patch
命令建立最新提交的修補程式。 如果要為特定提交建立修補程式,請在format-patch
命令後面指定 COMMIT_ID
。
$ pwd
/D/worksp/sample
Administrator@MY-PC /D/worksp/sample (master)
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: src/string.py
no changes added to commit (use "git add" and/or "git commit -a")
Administrator@MY-PC /D/worksp/sample (master)
$ git add src/string.py
Administrator@MY-PC /D/worksp/sample (master)
$ git commit -m "Added my_strcat function"
[master cea49f4] Added my_strcat function
1 file changed, 4 insertions(+), 1 deletion(-)
Administrator@MY-PC /D/worksp/sample (master)
$ git format-patch -1
0001-Added-my_strcat-function.patch
上述命令在當前工作目錄中建立.patch
檔案。 其他開發人員可以使用這個修補程式來修改他的檔案。 Git分別提供兩個命令:git am
和 git apply
來應用修補程式。 git apply
修改本地檔案而不建立提交,而git am
會修改檔案並建立提交。
要應用修補程式並建立提交,請使用以下命令:
yiibai@ubuntu:~/git/sample$ pwd
/home/yiibai/git/sample/src
yiibai@ubuntu:~/git/sample$ git diff
yiibai@ubuntu:~/git/sample$ git status –s
yiibai@ubuntu:~/git/sample$ git apply 0001-Added-my_strcat-function.patch
yiibai@ubuntu:~/git/sample$ git status -s
修補程式成功應用,現在我們可以使用git diff
命令檢視修改。
$ git diff
diff --git a/src/string.py b/src/string.py
index ab42b94..18f165f 100644
--- a/src/string.py
+++ b/src/string.py
@@ -6,4 +6,5 @@ var2 = "Python Programming"
print ("var1[0]: ", var1[0])
print ("var2[1:5]: ", var2[1:5]) # 切片 加索引
-
+def my_strcat(str1, str2):
+ return (str1+str2)