相关疑难解决方法(0)

新的git diff压缩启发式不起作用

更新

由于@ torek的回答,现在已经解决了

我需要在新添加的上方添加更多行,以便Git可以向上移动diff'ed块,我的意思是:

+a
+b
+c
+
+["foo", "bar", "baz"].map do |i|
+  i
+end
+
 ["foo", "bar", "baz"].map do |i|
   i.upcase
 end
Run Code Online (Sandbox Code Playgroud)

注意:我尝试使用单个换行符而不是a\nb\nc\n它也可以使用


原始问题......

我在Mac OSX上使用Git 2.9

这是一个简化的测试用例:

$ mkdir git-highlight && cd git-highlight
$ touch foo.rb
Run Code Online (Sandbox Code Playgroud)

我添加并提交以下内容:

["foo", "bar", "baz"].map do |i|
  i.upcase
end
Run Code Online (Sandbox Code Playgroud)

现在我修改文件以具有以下内容:

["foo", "bar", "baz"].map do |i|
  i
end

["foo", "bar", "baz"].map do |i|
  i.upcase
end
Run Code Online (Sandbox Code Playgroud)

如果我要运行,git diff或者git diff --compaction-heuristic我得到以下意外输出:

diff --git a/foo.rb b/foo.rb
index 9056b22..f0d289a …
Run Code Online (Sandbox Code Playgroud)

git git-diff

6
推荐指数
2
解决办法
1993
查看次数

如何从选项名称确定要在全局配置文件中使用的正确git配置设置?

我想在我的全局git配置文件中使用'--compaction-heuristic'选项.它是git log命令的一个选项:

--compaction启发式

--no压实启发式

这些是为了帮助调试和调整实验启发式(默认情况下是关闭的),它会移动块边界以尝试使得生成的补丁更容易阅读.

该混帐配置文件建议增加配置设置这样的例子:

git config --global core.editor emacs

git log文档中似乎没有任何内容说明这个配置值应该是什么 - 所以它是什么以及我在哪里可以找到解释该行格式的规范:

git config --global [魔术在这里启用压缩 - 启发式]

无论如何,此git功能现已被删除

git

5
推荐指数
1
解决办法
760
查看次数

当我刚将文件添加到暂存区时,为什么 Git 会将文件存储在存储库中?

据我了解,当您git add创建文件时,它只是在将文件添加到存储库之前暂存该文件,但为什么我可以在提交之前看到它已添加到 git 存储库中?

例如,如果我创建一个新的 git 存储库并创建一个名为的新文件foo并将内容“hello world”添加到其中,然后,我会在该文件夹内的子目录git add foo中看到一个新项目。我什至可以使用命令查看文件内新文件的内容。objects.gitobjectsgit cat-file -p

文件夹中到底添加了什么.git/objects?从技术上讲,暂存文件有什么作用?git add比如对文件运行a 后会发生哪些步骤?如果我知道步骤,也许我会更好地理解它。

git git-add .git-folder

4
推荐指数
1
解决办法
381
查看次数

如何在 git add 交互式补丁模式中获得更好的帅哥?

我经常使用git add -p somefile交互式暂存给定文件中的部分。但是,如果文件有更复杂的更改,则默认差异会出错,交互式补丁命令提供的大块也会出错。

该git diff命令有许多选项可以改进或自定义 diff 输出,包括非常有用的--anchored=<text>,但是有什么方法可以从中获得更好的大块头git add -p吗?

git diff patch interactive git-add

4
推荐指数
1
解决办法
424
查看次数

标签 统计

git ×4

git-add ×2

.git-folder ×1

diff ×1

git-diff ×1

interactive ×1

patch ×1