git提交在父目录中有路径

时间:2012-06-01 21:41:23

标签: git

我将一个项目从svn移动到git。我使用git-filter-branch和--index-filter删除所有不必要的目录,并使用--prune-empty选项修剪所有空提交。

在我重新登录存储库之后,我仍然看到这些奇怪的提交,其路径指向一个祖先目录。这可以通过git log --stat

的输出得到最好的解释
commit 222222b80e791e4ef5b9a027c8b10f64be5e2222
Author: someuser <someuser@somedomain>
Date:   Mon Sep 14 17:52:08 2009

    some commit msg

 hello/.project                                |   11 ++++
 hello/bin/hello.fla                           |  Bin 0 -> 43008 bytes
 .../other/Plugin.as                           |   10 ++++
 .../other/Constants.as                        |    2 +
 hello/Base.as                                 |   52 ++++++++++++++++++++
 .../other/HelloWorld.as                       |   21 ++++++++
 .../target/Hello.swf                          |  Bin 0 -> 1039 bytes
 7 files changed, 96 insertions(+), 0 deletions(-)

这是怎么发生的,我该如何解决这个问题?

顺便说一句,该命令是在git存储库的根目录下运行的。

1 个答案:

答案 0 :(得分:1)

那些不是父目录。 git缩短了...的路径名,因为它没有空间显示它们(大概)。

来自git log --help手册页:

   --stat[=<width>[,<name-width>[,<count>]]]
       Generate a diffstat. You can override the default output width
       for 80-column terminal by --stat=<width>. The width of the
       filename part can be controlled by giving another width to it
       separated by a comma. By giving a third parameter <count>, you
       can limit the output to the first <count> lines, followed by
       ...  if there are more.

       These parameters can also be set individually with
       --stat-width=<width>, --stat-name-width=<name-width> and
       --stat-count=<count>.

尝试将终端的大小调整为120个字符,然后执行以下操作:

git log --stat=120,80

那么你应该有足够的空间来查看完整的路径名。