linux git patch 和patch以及git diff 命令


1.git log 查看commit id,修改前為id1,修改后id2

2.根據id1到id2有幾次提交來生成幾個patch,否則的話會根據所有節點生成很多patch

比如:

commit id2

commit idx

commit id1

那么執行:git format-patch -2 id1 id2   會按照順序生成兩個patch,比如下:

0001-add-build-scripts.patch

0002-add-test-build-scripts.patch

3.先回退到id1 : git reset --hard id1

4.打patch時檢查patch:

先檢查patch文件:git apply --stat  patchname.patch
檢查能否應用成功:git apply --check patchname.patch    (如果打不上,在這一步會報錯,報錯顯示和git am patch是一樣的,如果patch有順序的話,檢查第一個就可以)

5.打patch :git am patchname.patch

打patch時嚴格按照patch的順序一個一個打

6.patch失敗的話,采用 patch -pn < patchname.patch

pn表示跳過多少級目錄,如果patch在當前目錄下,直接用patch -pn < patchname.patch ,如果patch在上層目錄下,則patch -p1 < ../patchname.patch

7.git diff 也可以打patch,使用:

  git diff commit_id1 commit_id2 > test.patch

  打補丁: git apply test.patch

備注,如果打補丁失敗,要先把新增的文件刪掉。

 

如果沒有commitid,只是修改了文件,可以用git diff 后接改動文件來生成patch,如下:

(1)git diff test.java > test.patch # 生成補丁

然后切換到指定路徑下,檢查一下這個補丁,並把這個補丁打上。

(2)git apply --check  test.patch #測試補丁能否成功

(3)git apply test.patch # 打補丁

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM