11

每当我通过或(因此?)将子目录拆分为分支git subtree split时,当我将子树向上游推送时,新分支/上游提交中的提交消息都会带有“-n”和一个换行符。

使用拆分最容易演示:

git init repo
cd repo
mkdir splitme
touch splitme/foo
git add splitme/
git commit -m 'Add foo'
git subtree split -P splitme -b splitme-only

由此,我得到:

$ git log master
commit 6d5164076bd88d1dab8963d91ec013372e58a444
Author: me
Date:   Fri Jul 26 12:22:27 2013 -0500

    Add foo

$ git log splitme-only 
commit 6ce8124a0b5e52d4bba198144d2f3f664d7b19e7
Author: me
Date:   Fri Jul 26 12:22:27 2013 -0500

    -n
    Add foo

如您所见,“splitme-only”分支在提交消息前附加了“-n”。这尤其糟糕,因为 github 默认情况下会折叠除第一行之外的所有内容。因此,您不能轻易地在 github 上浏览这些提交消息。

我尝试过使用--annotate可能会获得更具可读性的内容,但这只是在“-n”行中附加了一些内容。

的行为是相同的subtree push

有什么方法可以防止添加“-n”行吗?我可以重新调整这条线,但是当我玩弄它时,它破坏了子树的合并。难道我做错了什么?

在 OS X 10.8.4 上使用 git 1.8.3.4。

4

1 回答 1

15

事实证明这是 git 中的一个错误,在 1.8.3.3 中引入。

具体来说,这种合并使子树通过sh而不是运行bash,这打破了这一行

这是我刚刚提交的错误报告:http: //thread.gmane.org/gmane.comp.version-control.git/231213

更新:该错误已在 git 1.8.4中修复

于 2013-07-26T21:14:19.543 回答