git merge --squash mybranch
時自動添加從壓扁mybranch
提交所有提交意見的方式,以使單個提交包含所有提交的評論從mybranch
git merge --squash mybranch
時自動添加從壓扁mybranch
提交所有提交意見的方式,以使單個提交包含所有提交的評論從mybranch
級聯我認爲這是什麼「git merge --squash」會自動完成!只需做「git commit --no-edit」的提交,我想這就是你會得到的。我在運行「git merge --squash」命令後立即看到.git/SQUASH_MSG中的所有提交消息。你做?
就我個人而言,我擠成了主人,但隨後強行將結果推回到我的主題分支。這樣我的最終提交可以通過拉取請求進行代碼審查。
活生生的例子(嘗試這些確切的命令,這個使用我的演示服務器,真正的作品):
git clone http://vm.bit-booster.com/bitbucket/scm/bb/rebase-example-2.git
cd rebase-example-2
git checkout branch
git reset --hard origin/master
git merge --squash origin/branch
git commit --no-edit
git show
commit 74656c51212526af49382c985419244737141217
Author: G. Sylvie Davies <[email protected]>
Date: Mon Dec 26 22:07:50 2016 -0800
Squashed commit of the following:
commit 3120cbba4e94e0a81eed2f9ff42e7012cca996bf
Author: G. Sylvie Davies <[email protected]>
Date: Thu Dec 15 18:24:02 2016 -0800
b2
commit ccb522334464879b8f39824031c997b57303475d
Merge: 6b85efb 026bf0c
Author: G. Sylvie Davies <[email protected]>
Date: Thu Dec 15 18:13:35 2016 -0800
m
commit 6b85efbddbb74d49a096bfc54fd4df15e261b72f
Author: G. Sylvie Davies <[email protected]>
Date: Thu Dec 15 18:12:51 2016 -0800
b1
在這一點上,我建議做一個「混帳推--force-與租賃」來獲得這個被壓縮的東西就會提交給遠程主題分支,準備好進行代碼審查。
注:我在示例中做了一件奇特的事情。我實際上是在擠壓原產地/主人,而不是當地的主人,而我首先做的是「git checkout branch」和「git reset --hard origin/master」。這使我的本地主人不受此操作的干擾,因此無論我在哪裏工作,都會一個人留下。
我在Git 2.7.4上。也許年齡較大的選手表現不同,我不知道。
如果你想在Web UI中完成這一切,並且恰好使用Atlassian Bitbucket Server(本地版本),那麼可以安裝我的Bit-Booster付費附加組件,並點擊大「Squash」按鈕它會提出拉請求。它完成同樣的事情,除了只有非合併提交消息被連接在一起。
我傾向於不使用'git merge --squash',而只是在Git 2.10.1中測試了它,並且它在那裏的工作方式相同。 – torek
'--no-edit'選項是我正在尋找的。不幸的是,該選項不可用於SourceTree中的提交,因此必須在命令行執行。當從命令行完成時,在提交之前沒有辦法編輯連接的註釋?啊,我試過TortoiseGit,它的commit會默認連接所有註釋,並允許它們在提交結果之前進行編輯。 我正在使用Git 2.10.1.windows.1 – JonN
嘗試省略「--no-edit」。我確定「git commit」會預先爲你的編輯器填充相同的內容。但是,如果您更喜歡使用「--no-edit」,則可以隨時使用「git commit --amend」來調整提交消息。 –
你可以先在壓扁的特性分支,串聯或互動變基中重新手工的意見,然後合併擠壓分支。你打算壓縮多少次提交? –