2017-05-03 241 views
2

我想保留合併分支的分支信息,所以我設置了branch.master.mergeoptions=--no-ff。這樣,即使可以快速轉發,也始終會生成合並提交。如何使用git pull自動保存合併提交--rebase?

然而,副作用是在執行git pull(更具體地說是IntelliJ或Eclipse中的更新)時創建了合併提交。爲了防止日誌充滿Merge remote-tracking branch 'origin/master',我還設置了branch.master.rebase=true,它在將它拉動時將master快速轉發到origin/master

此設置還有另一個副作用:當我將一個分支合併到master之後,因爲我忘記在合併之前這樣做,我的分支信息丟失了:功能分支在master中被夷爲平地。

命令git pull --rebase=preserve正是我需要的:它將重新生成master,然後再次應用分支的合併。但是我需要自動完成這些工作,因爲大多數這些命令都是由Eclipse或Intellij執行的。我想git pull實際執行git pull --rebase=preserve

有一個config setting pull.rebase=preserve應該做到這一點,但即使我設置此配置,git pull會做只是一個git pull --rebase,而不是預期的git pull --rebase=preserve,而我目前使用Git版本2.12。 2,預計將包含該功能。

那麼我怎麼能確保當我在我的主人上做git pull時,即使我沒有在合併之前更新我的主人,它也會保留我的合併提交?

+0

我實際上並不關注你,但爲什麼不從命令行執行所有操作,可能使用腳本,在哪裏有更多的控制? –

+0

並非公司裏的每個人都像使用命令行一樣有經驗並且非常尷尬。這就是爲什麼我需要一種方法來通過使用默認的Eclipse或IntelliJ更新來實現這些功能 - 在這些更新中,您控制的是有限的或者沒有控制 – Auric

回答

2

設置branch.master.rebase=true實際上是覆蓋默認的pull.rebase=preserve

的解決方案是要執行的命令 git config branch.master.rebase preserve 使得配置設置現在爲branch.master.rebase=preserve。這將在執行時自動保留合併提交git pull

+0

您可以將其標記爲答案。 –

+0

我知道,但我還不能。我不得不等待2天,即從現在起6個小時 – Auric