Tiina Asked: 2020-11-24 17:46:30 +0800 CST2020-11-24 17:46:30 +0800 CST 2020-11-24 17:46:30 +0800 CST gitk中的双加号是什么? 772 git diff HEAD HEAD^2显示单个+,但 gitk 显示 2,如下图所示。我想知道为什么。 + int k = 0; + for(; j < i; ++i){ + for (k = 0; k < 1000; ++k){ ++ if(groupids[k] ==0){ ++ break; ++ } + if(groupids[k] == groupid[j]){ + return 1; git diff 1 个回答 Voted Best Answer phuclv 2020-11-24T18:54:35+08:002020-11-24T18:54:35+08:00 这意味着提交是一个合并,并且该行是一个新行,没有出现在两个原始提交中 N 列中的-字符表示该行出现在 fileN 中,但未出现在结果中。N 列中的+字符表示该行出现在结果中,而 fileN 没有该行(换句话说,从该父级的角度来看,该行已添加)。 在上面的示例输出中,函数签名从两个文件中都发生了更改(因此-从 file1 和 file2 中删除了两个,加上++意味着添加的一行没有出现在 file1 或 file2 中)。其他八行与 file1 相同,但未出现在 file2 中(因此以 + 为前缀)。 https://git-scm.com/docs/git-diff#_combined_diff_format 简而言之,合并提交中的一行差异前面有 2 个字符。如果两次提交中的行相同,则为 2 个空格。如果该行来自任一提交,则+该提交的列中将显示一个。如果该行从某个提交中删除,-则显示在该提交的列中。如果这条线是新的,那么它就是++. 您可以在上面的文档中看到示例: - static void describe(char *arg) -static void describe(struct commit *cmit, int last_one) ++static void describe(char *arg, int last_one) { + unsigned char sha1[20]; + struct commit *cmit; struct commit_list *list; static int initialized = 0; struct commit_name *n; 上面的行static void describe(char *arg, int last_one)与两个父提交都不同,因此原始行被标记-为表示这些在输出文件中不可用,然后++用于标记更新的行
这意味着提交是一个合并,并且该行是一个新行,没有出现在两个原始提交中
简而言之,合并提交中的一行差异前面有 2 个字符。如果两次提交中的行相同,则为 2 个空格。如果该行来自任一提交,则
+
该提交的列中将显示一个。如果该行从某个提交中删除,-
则显示在该提交的列中。如果这条线是新的,那么它就是++
. 您可以在上面的文档中看到示例:上面的行
static void describe(char *arg, int last_one)
与两个父提交都不同,因此原始行被标记-
为表示这些在输出文件中不可用,然后++
用于标记更新的行