git subree push和split添加“-n <newline>”来提交消息</newline>

时间:2013-07-26 17:50:38

标签: git git-subtree

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

使用split进行演示最简单:

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。

1 个答案:

答案 0 :(得分:15)

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

具体而言,this merge使子树通过sh而不是bash运行,这会打破this line

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

更新:git 1.8.4中的错误是fixed