2009-12-09 26 views
2

我即將爲項目創建補丁文件。我的分支是我本地存儲庫中的「主」。遠程上游分支映射到本地分支「origin」。 \ 使用此命令我可以比較兩個分公司和看到所有的差異Git如何找出在一個分支上完成的單個提交而不是另一個

git diff origin..master 

[gives me a full patch format of all commits] 

但在這種情況下,我想specificly櫻桃採摘一些提交的,並創建一個新的補丁文件,爲不同的區域我的分支有所不同。問題是我如何看到個人提交?

回答

8

僅查看提交您可以使用

git log origin..master 

您還可以添加-p選項來查看單個修補程序。如果你想櫻桃選擇提交,你可以使用git rebase -i選項,這是非常整潔。

On your master branch: 
git checkout -b create-patch-foo 
git rebase -i origin 

這將讓你選擇,編輯,省略甚至擠壓(合併)提交。

+0

你可能想澄清一下,「這會讓你......合併提交」,你指的是'git rebase -i'中的'squash'命令。合併在版本控制系統中具有特定的含義,這與「擠壓差異/補丁/提交在一起」的想法不同。如果你不喜歡「壓扁」,也許'結合'是一個不太重的詞。 – 2009-12-09 12:20:33

+0

克里斯,合併是一個不幸的選擇這個詞的意思。 – hallski 2009-12-09 12:23:53

+0

感謝m5h,當然我應該只使用git-log而不是git-diff來查看各個提交:) 完美! – 2009-12-09 12:30:24

6

嘗試git cherry A Bgit log --left-right --boundary --oneline A...B

相關問題