【问题标题】:git subtree push and split adding "-n<newline>" to commit messagesgit subtree push and split 添加“-n<newline>”来提交消息
【发布时间】:2013-07-27 02:31:55
【问题描述】:

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

【问题讨论】:

    标签: git git-subtree


    【解决方案1】:

    原来这是 git 中的一个 bug,在 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-04
      • 1970-01-01
      • 2016-09-13
      相关资源
      最近更新 更多