相关疑难解决方法(0)

使用.gitconfig配置diff工具

如何配置Git使用不同的工具与.gitconfig文件进行区分?

我在.gitconfig中有这个:

[diff]
    tool = git-chdiff #also tried /bin/git-chdiff
Run Code Online (Sandbox Code Playgroud)

这是行不通的; 它只是打开常规命令行diff.当我做

export GIT_EXTERNAL_DIFF=git-chdiff
Run Code Online (Sandbox Code Playgroud)

然后git diff将打开外部差异工具(所以我知道外部差异工具脚本工作正常).我的.gitconfig配置对于diff工具有什么问题吗?

git

144
推荐指数
7
解决办法
19万
查看次数

如何在Visual Studio代码中查看本地历史记录更改?

我正在寻找一种方法来查看我当地的历史变化.

WebStorm中的等价方式: 在此输入图像描述

visual-studio-code

40
推荐指数
5
解决办法
6万
查看次数

确定目录中是否有任何文件更改过最新的Git提交

我正在为写一个post-commit钩子git。我想知道最新提交是否更改了特定目录中的任何文件。如果有任何更改,我可以继续并调用一些昂贵的代码,否则我可以跳过它。

所以,到目前为止,我得到的是像这样的简短哈希

# get last commit hash prepended with @ (i.e. @8a323d0)
function parse_git_hash() {
  git rev-parse --short HEAD 2> /dev/null | sed "s/\(.*\)/@\1/"
}
Run Code Online (Sandbox Code Playgroud)

现在,我需要确定指定目录是否有任何更改。但是我不确定该怎么做。我已经看了,用打git-loggit-show,但没有成功为止。

所以,我需要做这样的事情。

if [directory-changed()] {
  echo "start expensive operation"
}
Run Code Online (Sandbox Code Playgroud)

这实际上使我进入了其中:实际上,它捕获了最后一次提交而不是指定的提交。

git log  -U a79851b -1 my/directory/path
Run Code Online (Sandbox Code Playgroud)

提前致谢。

git githooks

6
推荐指数
1
解决办法
3630
查看次数

Git diff 所有本地未提交的更改

我有以下问题。我想从 获取输出git diff,但对于所有未提交的本地更改(这意味着未暂存和暂存的文件)。

我不是在搜索 git log 或任何其他输出,它必须被git diff输出,因为然后我用我制作的解析器解析它。

现在我有:

所有未暂存的文件:

git diff
Run Code Online (Sandbox Code Playgroud)

暂存 + 未暂存文件 + 所有本地提交(与远程相比)

git diff origin/master
Run Code Online (Sandbox Code Playgroud)

现在,我错过了可以获取git diff所有未暂存和已暂存文件的部分,但不将其与远程进行比较(因为它也需要所有本地提交),而只是将其与上次本地提交进行比较。有没有办法做到这一点?

git git-diff

3
推荐指数
1
解决办法
5335
查看次数

标签 统计

git ×3

git-diff ×1

githooks ×1

visual-studio-code ×1