2016-09-21 168 views
0

我在名爲blaBla的分支上工作。 master從其他人處獲得大量提交。爲了保持與主人更新blaBla我做頻繁的git拉大師併合併到blaBla。但是這使得我的分支混亂不堪。我想合併所有新的已發生的提交到一個,然後合併到我的分支。所以當我做git log時,我只看到屬於該分支的提交以及那些單獨的合併提交。沒有別的Git在合併之前合併提交

回答

1

我想合併所有在主發生的新提交到一個,然後合併到我的分支。

你真的不想這樣做。爲使從master變成一個特性分支的唯一合理的選擇是:

  1. 做一個正常git merge master沒有擠壓其提交,這樣的Git可以告訴它提交您的特性分支有共同之處master(否則你可能遭受無數合併衝突)。否則,壓縮的合併提交中的所有新變化看起來像是它們的新功能的一部分 - 並不好。

  2. 做一個git rebase master重播您的分支的最新變化master。這是我首選的工作流程,因爲它將您的更改構建爲「自從master以來的更改」,無論您開始使用哪個master,但它帶有重寫歷史記錄的所有常見風險(例如,如果要將git push --force更改爲其他人依賴的分支)。


更新,以反映接受的答案:或者改變你如何可視化的提交。 git log --first-parent將隱藏合併到當前分支的提交。雖然通常用於可視化master(哪些功能分支已合併),但它也可以排除已合併到功能分支中的master提交。

+0

所以在這兩個我塞滿我的本地分行與數千人發生在主犯下的歷史被改寫。如何跟蹤我的分支更改,然後觸摸master中的小目錄?如果你在每次提交幾次後頻繁合併滾動你的commtis似乎是一個不可能的任務,除非通過成千上萬的主提交滾動來查找你的分支的東西 –

+0

我所關心的只是看到我的提交,單一合併提交和沒有其他的相關修復衝突。我怎麼做? –

+1

一種選擇是使用'git log --first-parent'來查看你的分支 - 你會看到「合併分支'master'到blaBlah'(及其衝突解決方案),但不是合併的提交。」 我不明白「混亂我的本地分支」關於「rebase」的評論 - 如果您認爲分支是「從master分支後發生的變化(即'git log master..'),post-'rebase '你會繼續看到同一系列的提交。 – dahlbyk

0

似乎有一些方法可以做到這一點,但如果您只是在本地進行此操作,它可能會使您的更改變得更難掌握。 Git的真不喜歡在所有

Here is a good answer on using git reset --soft

+0

正如你所說修改歷史是一個很大的禁忌。我不想修改主人。只要將它的提交合併到我的分支,不要碰其他任何東西。也許這更像是一個git log可視化的東西,而不是實際的組合提交。所以,當你做'git log'時,你所看到的只是我的提交,單合併事件以及合併衝突的相關修復。沒有其他數千個提交看到 –