2012-12-04 25 views
1

可以配置git來壓縮合並,但不能壓縮拉來改變嗎?如果可能的話,我將如何配置git這種方式?配置git來壓縮提交,而不是拉

我通過git config branch.<name>.mergeoptions --squash

配置的git雖然這適用於從分支合併壓垮提交,它也試圖進入壓扁的變化做一個拉時。

+3

沒有給出真正的答案,只是:'pull'只是一個'fetch'和'merge'。這就是爲什麼它也受到「mergeoptions」的影響。 – KingCrunch

回答

2

在您的〜/ .gitconfig或.git/config每個項目的基礎上。

... 
[alias] 
    ms = merge --squash 

編輯:根據git-config聯機幫助頁,覆蓋內置命令是不可能的。更新的答案建議爲此提供單獨的命令。

git(1)命令包裝的命令別名 - 例如,在定義 「alias.last = cat-file commit HEAD」之後,調用「git last」爲 等價於「git cat-file commit HEAD」。爲了避免混淆和腳本使用的問題,隱藏現有git命令 的別名將被忽略。參數被空格分開,通常shell引用 並支持轉義。報價對和反斜槓可用於 報價。

+0

它有什麼用?他要求壓縮顯式合併,但不要在合併之內壓縮合並。 –

+1

AFAIK,別名不應該在pull的合併階段內應用,就像調用'git merge'一樣。這不是一個明確的合併? – udoprog

+0

是的,在git-pull.sh git-merge顯式調用,即繞過任何別名。你是對的。 –

0

我想你需要做一個git fetch然後git merge --no-squash做你想要的。或者,如果你想這樣做的一個命令,一個簡單的git的別名(或bash別名或功能,對於這個問題)應該足夠了:

混帳配置alias.pull-NO-南瓜「混帳取! ; git merge --no-squash'