每当我通过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。
答案 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