git 建立patch的技巧

概述

       使用git管理工程至關方便,打補丁時可以使用命令 git format-patch -M 指定某個分支依次建立到達當前分支所通過的每次commit與前一次提交的補丁。git

以下:shell

git checkout master
git checkout -b feature 
git commit * N times
git format-patch -M master

1.會產生多個patch文件
2.若是咱們下載了master分支,須要對master依次打上產生各個patch才能到達feature
master->patch*N times ->feature
顯得很不方便
所以須要產生這樣的patch
master->patch->feature

    下面簡述兩種收集到的方法
segmentfault

方案一

1.從 master 再建立一個分支
git checkout master && git checkout -b patch
2.用 squash 命令 git merge feature --squash
而且編輯一下 comment
3.用 git format-patch 導出補丁
4.補丁被承認後,刪掉 patch 分支

方案二

1.使用 git rebase -i [feature 分支剛從master分出來的hash值]
2.進入交互式文本編輯
把需合併的第一個提交前面的 pick 改爲 reword
其餘提交前面的 pick 改爲 squash
3.這樣修改註釋、合併提交就一併完成了。 再正常 format-patch 便可。

總結

        方案一比較麻煩,但能夠保留歷史提交。方案二相對粗暴,是利用消減部分commit信息達到目的。但相對方便的多.
spa

參考文章

http://segmentfault.com/q/1010000000332524code

相關文章
相關標籤/搜索