2010-12-08 70 views
0

我目前正在嘗試從OSS項目的主幹中挑選出一個功能,並將其分配到一個分支中。這兩個存儲庫都使用git,我將trunk作爲分支導入到fork中,這樣可以使事情變得更加簡單。帶有「OR」子句的git-log - 或者 - 如何合併git-log輸出?

我正在採取的方法是嘗試從一個分支挑選所有相關的提交到另一個分支,因爲我不可能做一個直接合並:有太多分歧的東西。

爲了產生我應該用櫻桃挑選我已經確定開始提交的列表中有兩個git-log命令來運行:

git log --branch project-trunk **/*Foo* 

這是爲了給我的日誌與任何文件在「project-trunk」分支上的文字「Foo」。這是一個很好的起點,但我發現還有其他相關的提交:幸運的是,它們通常在提交日誌中有一個識別工作。因此,要找到這些我使用的是:

git log --branch project-trunk --grep Bar 

這給了我包含的作品「酒吧」的分支project-trunk任何日誌。

問題是我真的需要一個主列表,按時間順序包含這兩個命令的聯合。我已閱讀git rev-list手冊,但我無法看到我想要的任何方式。

聯合這樣的兩個獨立條件有可能嗎?如果沒有,是否有一種簡單的方法將兩個git-log命令的輸出按時間順序組合?

回答

0

我不耐煩,多一點玩耍,我想出了這似乎工作如下:

(git rev-list --grep=Bar heads/project-trunk; git rev-list heads/project-trunk **/*Foo*) | git log --stdin --no-walk --reverse 

如果任何人都可以改進它在所有讓我知道!希望這可以幫助別人在未來...

相關問題