标签: git-diff

在 VS Code(或其他 difftools)中一次查看所有 Git 差异

我已经将我的 Git difftool 配置为 VS Code:

[diff]
    tool = default-difftool
[difftool "default-difftool"]
    cmd = code --wait --new-window --diff $LOCAL $REMOTE
    prompt = false
Run Code Online (Sandbox Code Playgroud)

这工作正常,但是当有多个文件要差异时,它们会一个一个打开(VS Code 以单个文件差异启动,我关闭 VS Code,打开下一个文件差异,等等)。

有没有办法配置 Git,以便在同一个 VS Code 实例中一次打开所有差异?

git git-diff visual-studio-code

8
推荐指数
1
解决办法
168
查看次数

我不能让git diff使用opendiff

我想使用opendiff作为git diff的默认diff工具.这曾经工作但由于某种原因停止工作.我正在使用脚本:

echo opendiff $2 $5 > opendiff-git.sh
Run Code Online (Sandbox Code Playgroud)

在.gitconfig中设置:

[diff]
external = ~/opendiff-git.sh
Run Code Online (Sandbox Code Playgroud)

这最近停止了我的工作.怎么了?

更新:当我克隆一个新的存储库时,一切正常!奇怪!

git git-diff opendiff

7
推荐指数
1
解决办法
1973
查看次数

基于Emacs的Git Diff工具?

是否有基于emacs的视觉差异工具可用?如果有多个工具可用,哪个更好,或者更具体哪个更容易使用?

你如何在git和emacs中设置所述diff工具?

为了澄清,我将经常从外部emacs访问这个.我通常从命令行运行git,目前我主要是在Windows上的Visual Studio中开发,虽然我也在Linux中开发(在这种情况下通常使用emacs或Geany)和Apple Mac(主要是命令行和emacs).

如果我目前正在Windows上的Visual Studio中进行开发,那么使用emacs for diff工具会有什么主要的缺点?

谢谢.

git emacs git-diff

7
推荐指数
2
解决办法
5788
查看次数

按块应用提交块

当我将文件添加到暂存时,我可以

$ git add my_file -p
Run Code Online (Sandbox Code Playgroud)

并选择我想要的舞台.

有没有办法合并/樱桃选择提交并应用块的差异块?

谢谢

git diff commit git-diff git-commit

7
推荐指数
1
解决办法
4565
查看次数

我可以默认使用我的Git'difftool'应用'--dir-diff'吗?

有没有办法配置Git --dir-diff在执行时始终应用该选项

git difftool <commit> <commit>
Run Code Online (Sandbox Code Playgroud)

例如,逻辑上等同于:

[diff]
    #tool = p4merge
    tool = araxis 

[difftool]
    prompt = false
    dirdiff = true # Is there something equivalent to this?

[mergetool "araxis"]
    path = /Applications/Araxis Merge.app/Contents/Utilities/compare
Run Code Online (Sandbox Code Playgroud)

git git-diff git-config

7
推荐指数
1
解决办法
1316
查看次数

如何在不输入完整路径的情况下运行'git diff some/long/file/name'?

在我的工作流程中,我经常运行以下一对命令:

$ git status
M README.txt
M some/long/file/name
$ git diff some/long/file/name
Run Code Online (Sandbox Code Playgroud)

有没有办法,快速输入/ use_shortcat为长文件名而不复制它的名称(这个动作需要使用鼠标,它不像打字那么快)?也许是这样的git diff $2,$2从状态列表中第二个改变文件的位置......?

git git-diff command-line-interface git-status

7
推荐指数
3
解决办法
725
查看次数

git使用什么样的正则表达式

我正在尝试使用git diff --word-diff-regex =命令,它似乎拒绝任何类型的前瞻和外观.我无法确定正则表达式git使用的风格.例如

git diff --word-diff-regex='([.\w]+)(?!>)'
Run Code Online (Sandbox Code Playgroud)

作为无效的正则表达式返回.

我试图得到所有不是HTML标签的单词.因此,正则表达式的结果匹配应该是以下字符串的'Hello''World''Foo''Bar'

<p> Hello World </p><p> Foo Bar </p>
Run Code Online (Sandbox Code Playgroud)

regex git git-diff

7
推荐指数
1
解决办法
764
查看次数

git的耐心差异算法的实现是否正确?

Stackoverflow上的这个问题似乎是耐心差异算法应用的一个很好的候选者.然而,在测试我的潜在答案时,我发现这git diff --patience不符合我的期望(在这种情况下,与默认的diff算法没有区别):

$ cat a
/**
 * Function foo description.
 */
function foo() {}

/**
 * Function bar description.
 */
function bar() {}

$ cat b
/**
 * Function bar description.
 */
function bar() {}

$ git diff --no-index --patience a b
diff --git a/a b/b
index 3064e15..a93bad0 100644
--- a/a
+++ b/b
@@ -1,9 +1,4 @@
 /**
- * Function foo description.
- */
-function foo() {}
-
-/**
  * Function bar description.
  */
 function …
Run Code Online (Sandbox Code Playgroud)

git git-diff

7
推荐指数
2
解决办法
1681
查看次数

IntelliJ和Git:如何查看提交和两个较旧提交之间的差异?

您可能知道这个窗口,您可以在其中看到提交到旧提交的提交之间的差异.

在此输入图像描述

你知道我怎么能看到完全相同的比较,但是在提交和之前的提交之间,它不一定是当前提交之前的一个提交.

我知道我可以按一个文件执行此操作,但我想为整个项目执行此操作.

git intellij-idea git-diff

7
推荐指数
1
解决办法
1390
查看次数

为什么移动的代码没有在git diff中着色?

我安装了最新的git并将其配置为突出显示移动的代码:

$ git config diff.colormoved default
Run Code Online (Sandbox Code Playgroud)

以下是代码移动时的外观(参见1-> 2) 在此输入图像描述

但3-4不会突出显示为已移动的代码.

这是独立的变化:

在此输入图像描述

git git-diff

7
推荐指数
1
解决办法
909
查看次数