标签: git-diff

如何通过git-config配置统一的差异上下文?

如何通过git-config配置统一上下文,以便我不必总是为-U或--unified选项提供值?

git git-diff unified-diff git-config

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

我们 git diff 之间有什么不同的方式?

git diff HEAD^ HEADorgit diff HEAD~ HEAD和 this git diff HEAD^1or 有git diff HEAD~1什么区别?

我明白那些git diff HEAD^ HEAD= git diff HEAD~ HEAD

等是git diff HEAD^1= git diff HEAD~1..

在任何情况下,所有这些差异都会产生相同的输出吗?

git git-diff

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

如何将整个git repo输出到单个文件?

我创建了一个git repo,我希望将所有提交的整个git repo作为单个补丁文件.

我尝试过很多SO帖子,但在任何地方都找不到合适的解决方案.

git git-diff

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

可以在gitk中配置diff吗?

单击gitk中的文件时,会将其与该文件的先前版本进行比较。看起来文件已与git diff进行了比较,并且可以配置很少的参数(基本上,每个diff周围要查看的行数,即“上下文行”)。

是否可以通过某种方式进一步配置gitk的差异?当我单击文件时,我希望它运行git diff --word-diff = color而不是git diff。这样的事情可能吗?

如果是的话,该设置就很好隐藏了。

git git-diff gitk

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

Git diff在同一分支上的2个不同文件之间

我有2个不同的文件foobar

每个都在同一分支上的2个不同提交上,分别使用SHA1 SHA1-fooSHA1-bar。我想看看这两个文件之间的区别。

我可以签出其中一个文件并将其复制,但也许有更好的方法。

git git-diff

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

当文件相同时,git diff报告差异

我正在尝试将一些更改从一个分支合并到我的存储库中的另一个分支.我使用以下内容来找出差异:

git diff branchA...branchB path/to/files > diff.patch
Run Code Online (Sandbox Code Playgroud)

这很有效,并展示了我所有的变化.然后我去手动更新了我想要的branchA中的文件并提交了它们.Git状态显示一切都是最新的.现在我想再次运行差异以确保我没有错过任何东西.

然而,当我运行差异时,它显示了我第一次运行它时所有相同的差异.例如,它显示我在branchB中添加的行,即使branchA中现在存在确切的行.

我猜这是因为我手工完成合并,但我现在又如何获得正确的差异?

git git-diff

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

如何将选项从 git-diff 传递给 less?

我在 OSX 机器上有一个相当默认的 git 设置,但我想将-j.5添加到less,以便搜索匹配发生在屏幕中间。

我尝试这样做export LESS=-j.5,但这导致内容喜欢ESC[1mdiff --git a/app/images/bluecog-icon.png b/app/images/bluecog-icon.pngESC[m出现,即使事先echo $LESS给出了一个空的结果。我查了一下,git help diff但它没有提到“pager”,也没有提到“less”指的是 unix 工具(而不是“greater”的反义词)。

修改环境变量或传递参数git diff都是可以接受的。我知道我可以-j.5在 git diff 本身内输入。

git git-diff less-unix

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

Git 相对路径问题 - 在路径中找不到 lintable 文件

我在 git 版本控制系统下有一个 iOS/Swift 项目。层次结构如下,

home/user/git_root/docs
home/user/git_root/project
home/user/git_root/project/project.xcodeproj
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我的git_root目录包含文件夹中的一些其他文档docs以及实际的项目目录。

我已经使用自制软件安装swiftlint在我的Mac上,

brew install swiftlint
Run Code Online (Sandbox Code Playgroud)

swiftlint 当前安装的位置是,

which swiftlint
/usr/local/bin/swiftlint
Run Code Online (Sandbox Code Playgroud)

当我运行下面添加的脚本时Build phase -> Run scripts,发生了奇怪的事情,

脚本:

if which swiftlint >/dev/null; then
    echo "swiftlint already installed in machine";
    git diff --cached --name-only | grep "\.swift" | while read filename; do
        echo "swiftlinting file $filename";
        swiftlint lint --path "$filename";
    done
fi
Run Code Online (Sandbox Code Playgroud)

问题:

一些 swift 文件通过 echo 打印,但swiftlint找不到文件并产生以下错误,

在路径中找不到 lintable 文件:''

例如,下面是构建日志的输出,

swiftlinting 文件项目/a.swift

在路径中找不到 …

bash xcode git-diff ios swiftlint

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

更改 git diff 默认 -U 值

我似乎不知道如何在我的 ~/.gitconfig 中指定它,这样每当我运行它时,git diff <filename>它都会默认自动包含-U<line number>,这样我就不必每次都输入它。

git git-diff git-config

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

如何防止 git 自动对大文件进行二进制比较?

我在网上读到,一旦合并中的文件超过某个阈值,git 会自动执行二进制差异而不是文本差异。结果,我们失去了逐行解析的功能,即使差异本身非常小。

我有一个 ~1.3 GB 的 CSV 文件,应该代表一个数据库,根据此链接,这似乎刚刚超过了这个大文件阈值。我目前正在尝试对 Git 的冲突检测算法进行基准测试,因此我需要文本差异算法来在此文件上运行。

有没有一种方法可以增加自动执行二进制差异而不是文本差异的大小阈值?我已经尝试过了

git config --global --add core.bigFileThreshold 2g
Run Code Online (Sandbox Code Playgroud)

但这似乎没有帮助。我认为这没有帮助,因为根据我的理解,这只设置了符合文本差异的文件大小的上限,但文件大小小于并core.bigFileThreshold不能保证它不会将其视为二进制文件。

git git-diff git-merge git-config

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

标签 统计

git-diff ×10

git ×9

git-config ×3

bash ×1

git-merge ×1

gitk ×1

ios ×1

less-unix ×1

swiftlint ×1

unified-diff ×1

xcode ×1