标签: git-diff

GIT:使用某些扩展名更改了文件名

当我想得到我已经改变的文件列表时,我使用这个命令:

git diff --name-only
Run Code Online (Sandbox Code Playgroud)

但很多时候,我得到了许多我现在不关心的文件.例如,如果我上传到我的PHP服务器,我通常只需要.php文件列表.我试过这个:

git diff --name-only **/*.php
Run Code Online (Sandbox Code Playgroud)

但遗憾的是,它只显示第一个子目录中的文件.所以看起来它并不是将双星解释为递归.

任何的想法?

git version-control git-diff subdirectory

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

从Git中的多个提交中导出修改过的文件

与此问题非常相似的问题:在Git中仅导出具有文件夹结构的已修改和添加的文件

给定的答案似乎只输出给定提交中更改的文件($ commit_id):

git diff-tree -r --no-commit-id --name-only --diff-filter=ACMRT $commit_id
Run Code Online (Sandbox Code Playgroud)

我想获取commit1和commit2之间的修改文件列表......这可能吗?

git git-diff

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

git diff没有显示所有更改

我几乎不好意思问,但是当我git diff在特定文件上运行时,它只显示前26行左右的变化.

是否有一个页面向下命令将显示其余的更改?

git git-diff

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

在推送通知邮件中添加git diff

目前我正在使用gitolite来管理我的存储库和用户.每次推送后我都成功设置了通知邮件.命令是

chmod a+x post-receive-email
cd /path/to/your/repository.git
ln -sf /usr/share/doc/git-core/contrib/hooks/post-receive-email hooks/post-receive
Run Code Online (Sandbox Code Playgroud)

通知邮件仅包含更改摘要.我想在该推送中添加每个修改文件的更改行.我知道编辑该post-receive-email文件并且必须使用git-diff命令.我的问题是

什么是我必须使用的确切git-diff命令..?我在那个post-receive-email文件中添加该命令的地方..?有没有任何配置可用于gitolite ..?

git git-diff push-notification gitolite git-post-receive

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

在Windows 7上使用外部程序时,git diff tmp文件在Windows上无效

我正在关注Git配置页面中的文档并尝试将其应用到我的Windows 7环境中.当我运行说"git diff file0"时,我在P4Merge中收到错误:

Errors: '/tmp/cH9ccM_file0' is (or points to) an invalid file.
Run Code Online (Sandbox Code Playgroud)

这是一个真实的陈述.我没有名为"/ tmp"的目录.我已经检查了C:\ tmp,C:\ cygwin\tmp和%PROGRAMFILES%\ Git\tmp.

有关如何将此目录更改为我所拥有的内容的任何想法?

编辑:

附加信息.最终,我正在尝试让WinMerge(或任何外部程序)工作.我之前选择使用P4Merge,因为我无法让WinMerge工作,所以我决定使用上述文章中使用的程序.

以下是我的.gitconfig的相关部分:

[merge]
tool = extMerge
[mergetool "extMerge"]
cmd = extMerge \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"
trustExitCode = false
[diff]
external = extDiff
Run Code Online (Sandbox Code Playgroud)

extDiff脚本:

#!/usr/bin/sh
# extDiff
# Wrapper for using an external diff tool in Git
echo "File 1: $2"
echo "File 2: $5"
/usr/local/bin/extMerge "$2" "$5"
Run Code Online (Sandbox Code Playgroud)

extMerge脚本:

#!/usr/bin/sh
echo $*
/c/Program\ Files\ \(x86\)/WinMerge/WinMergeU.exe $*
Run Code Online (Sandbox Code Playgroud)

因此,如果我更改名为index.html的文件,并运行git diff,则结果如下:

File …
Run Code Online (Sandbox Code Playgroud)

git external git-diff windows-7-x64

3
推荐指数
2
解决办法
2200
查看次数

使用JGit在提交之间更改的文件列表

我想在两次提交之间更改(添加,修改或删除)文件的路径.

从命令行,我只是写

git diff --name-only abc123..def456
Run Code Online (Sandbox Code Playgroud)

使用JGit执行此操作的等效方法是什么?

java git-diff jgit

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

使用SmartGit diff工具作为外部git diff

我想将我的外部giff diff工具设置为SmartGit,然后在shell中输入git diff,显示SmartGit diff窗口.可能吗?

我知道如何设置外部差异工具.我的问题是,是否存在SmartGit的可执行文件,仅显示差异,或者是否有其他方法可以执行此操作.

git git-diff smartgit

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

git版本的差异版本是什么?diff2或diff3?

有人知道git使用的diff版本是什么吗?

例如,本文详细解释了虚拟变量的diff算法,但是实际使用的算法是什么?

有关常识,请参见diff2&的规范diff3

我知道您可以配置git使用diff2diff3

git config --global merge.conflictstyle diff3
Run Code Online (Sandbox Code Playgroud)

git diff git-diff

3
推荐指数
2
解决办法
1555
查看次数

可以'git diff'2个字符串吗?

我有2个字符串,我想要它们之间的git diff。我可以创建file1并添加string1作为其内容。

然后,我可以创建file2并添加string2作为其内容。然后我可以git diff file1和file2。

但是,鉴于我将字符串作为字符串(而不是文件内容),可以避免这些繁琐的步骤吗?有没有更简单的方法?

就像是:

git diff "my first string" "my second string" # obviously does not work
Run Code Online (Sandbox Code Playgroud)

git diff git-diff

3
推荐指数
2
解决办法
1622
查看次数

如何控制git diff头中的哈希长度

git diff的输出包含一个标题,如下所示:

index f8fdb16de,78132574a..000000000
Run Code Online (Sandbox Code Playgroud)

git help diff,这解释如下:

2. It is followed by one or more extended header lines (this example shows a merge with two parents):

       index <hash>,<hash>..<hash>
       mode <mode>,<mode>..<mode>
       new file mode <mode>
       deleted file mode <mode>,<mode>
Run Code Online (Sandbox Code Playgroud)

我想使用git diff来创建补丁,我希望这些补丁具有可预测的格式,以便进行比较.为此,我需要一个固定长度的"index .."标题中的哈希.

如何控制这些哈希的长度?

我试过--abbrev = 7,但似乎没有效果.

我仍然看到我的补丁更新如下:

-index 52a2a35..7813257 100755
+index 52a2a357e..78132574a 100755
Run Code Online (Sandbox Code Playgroud)

git git-diff

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