如何定义diff pathspec

时间:2011-06-19 18:23:01

标签: git diff

gitdiffcore(7)中,它只是声明:

The pathspecs are used to limit the world diff operates in. 
They remove the filepairs outside the specified sets of pathnames. 
E.g. If the input set of filepairs included:

    :100644 100644 bcd1234... 0123456... M junkfile

我的问题是如何阅读这个,即哪些字段是哪些字段,它们代表什么?

我正在寻找以便能够理解在检测路径名更改(作为选项)与文件重命名检测分开时是否有任何里程,这既昂贵又倾向于向用户建议许多文件已被重命名(而不是而不是单一的路径改变)

2 个答案:

答案 0 :(得分:3)

让我们打破这个:

:100644        100644         bcd1234...     0123456...     M         junkfile
old file mode  new file mode  old file hash  new file hash  modified  file name

要从指定提交的目录创建具有给定名称的存档,请使用git archive command

git archive --prefix='your_product_v1.2/' -o 'your_product.zip' v1.2:path/to/directory/

假设您希望从path/to/directory/创建归档,因为它在版本v.1中(标记,分支,您甚至可以在此处使用提交ID)。存档将命名为your_product.zip(从文件名推断格式,.tar也是可能的),所有文件将放在zip文件内的子文件夹your_product_v1.2中。

这样您就不必重命名VCS中的目录了(为什么还要这样做?)。希望有所帮助!如果事情仍不清楚,请发表评论。

答案 1 :(得分:0)

前两个数字是文件组权限标志。第二个是sha1指标之前和之后。 M告诉你这是一个修改。最后一个是你的文件名。