标签: git-diff

我怎么能做不区分大小写的git diffing同时也做`git diff --color`?

是否可以做一个不区分大小写的git diff同时也做git diff --color-words?或者我在做git diff --color-words什么时需要使用外部差异程序?

(注意:如果你想要的只是git diff case不敏感请转到这个问题 如何在Git中执行不区分大小写的diff)

git git-diff case-insensitive

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

从"git diff"中排除单个提交

早上好,假设我有一系列提交如下:

  • abc000
  • def111
  • abc222
  • def333
  • abc444
  • def555

我知道我可以使用

$ git diff -c --binary abc000..def555 > /tmp/abc000_def555.patch
Run Code Online (Sandbox Code Playgroud)

生成一个补丁,将系统从abc000升级到def555.

但是,如果我想(因为无法进入的原因)将 def333从补丁中排除 - 我该怎么做?请注意,我不想还原def333,它只是因为我不希望补丁包含此提交.

谢谢

git git-diff

13
推荐指数
3
解决办法
3519
查看次数

git diff中提交参数的顺序

git命令的顺序是什么

git diff [--options] <commit> <commit> [--] [<path>…]
Run Code Online (Sandbox Code Playgroud)

将不同的提交相互比较?似乎我想将新的与我需要做的旧的进行比较

git diff [--options] <New_commit> <Old_commit> 为了看到当前的差异?

我经常这样做 git diff [--options] <Old_commit> <New_commit>

但那似乎是错的?

当我做的时候

$ git diff `git rev-list --since="jun 30 2014" --reverse origin/master | head -1` `git rev-list --until="dec 31 2014" origin/master | head -1` --shortstat 

1072 files changed, 389650 insertions(+), 39180 deletions(-)
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做

$ git diff --stat `git rev-list --until="dec 31 2014" origin/master | head -1`
Run Code Online (Sandbox Code Playgroud)

我得到的打印输出:

384 files changed, 61255 insertions(+), 20526 deletions(-)
Run Code Online (Sandbox Code Playgroud)

哪个不是300000附近.所以我的问题是我是否应该首先插入新提交和旧提交sedond,如:

 $ git diff `git …
Run Code Online (Sandbox Code Playgroud)

git git-diff

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

如何查看vscode并排文件上的git diff?

大家好,我的问题是关于git diff,我想知道如何git diff master origin/master在VSCODE终端上的命令中以文件形式查看,我git fetch从远程存储库中执行了一个操作,现在我想查看差异,但命令仅显示我在航站楼。我正在努力得到这样的东西...

我想要的例子:

在此处输入图片说明

git git-diff git-fetch git-difftool visual-studio-code

13
推荐指数
10
解决办法
1万
查看次数

我怎样才能将git-diff限制为只有一个目录,没有它的孩子?

我git diff --name-status用来跟踪哪些文件在两次提交之间被修改/添加/删除/重命名/复制,并且效果很好.

现在假设我移动文件file1到newdir/file1,提交,然后运行git的差异,我得到这样的:

$ git diff --name-status -C HEAD~1 HEAD
R100    file1    newdir/file1
Run Code Online (Sandbox Code Playgroud)

有没有办法让git将自己限制在给定目录中的更改列表中,而不是其子项?我想分别知道根目录和newdir目录的确切更改.对于newdir,这很容易:

$ git diff --name-status -C HEAD~1 HEAD -- newdir
A       newdir/file1
Run Code Online (Sandbox Code Playgroud)

...但是如何在根目录中获取"补充"差异信息?即,这个输出:

$ git diff ???
D       file1
Run Code Online (Sandbox Code Playgroud)

请注意,我希望保留-C选项以检测同一目录中的重命名和副本.

git git-diff

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

每次提交时都会使用Git diff工具吗?

我想运行git difftool HEAD~3.. path/to/file并让git为这三个提交中的每个提交打开difftool,以便我可以看到每个提交的并排视图.

我怎样才能获得git-difftool来做到这一点?

git diff git-diff difftool

12
推荐指数
2
解决办法
2589
查看次数

使用BeyondCompare查看GIT中文件之间的差异

在我提交更改之前,我希望在GIT中使用BeyondCompare看到差异.如何配置BeyondCompare以查看文件中的差异.

我查看了这个链接,但没有帮助.

BeyondCompare安装在我系统中的这个位置: C:\program files\Beyond Compare\BCompare.exe

我运行了以下两个命令:

 git config --global merge.tool bc

git config --global mergetool.bc.path "C:\program files\Beyond Compare\BCompare.exe"
Run Code Online (Sandbox Code Playgroud)

我在Windows 7上使用GIT.

谢谢 !!

git git-diff beyondcompare beyondcompare3

12
推荐指数
2
解决办法
2万
查看次数

如何将本地分叉存储库与可能对原始存储库进行的更改进行比较?

我想比较我已经与原始/上游存储库分叉的存储库的本地克隆,以查看是否已经进行了进一步的提交,要求我进行拉/合并.我想从命令行执行此操作.

我用这个命令将原始存储库添加到我的遥控器列表中:

git remote add upstream <original repo URL>
Run Code Online (Sandbox Code Playgroud)

这在Github自己的关于分支分支主题的页面中有所概述.

然而,当我运行git diff upstream 或 git diff upstream/master 作为这里建议或git diff master upstream/master 作为建议在这里,我得到这样的:

fatal: ambiguous argument 'upstream': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
Run Code Online (Sandbox Code Playgroud)

该命令git diff origin/master不会返回错误(或任何事情).我错过了什么吗?

git github git-diff git-fork

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

在git中生成特定提交的diff文件

当头部处于特定提交时,我想获得一个diff文件,这样我就可以将头部缩小到一个更低的水平,然后在应用和不应用diff文件的情况下尝试测试功能.那么有没有办法生成特定提交的diff文件.

尽管有一种方法可以在提交之前和之后更改头部,但这种方法更方便.

git git-diff

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

Git - 在meld(作为difftool)中所做的更改未保存

我在这篇文章中关注了JörgWMittag 的回答,并将meld配置为我的git中的difftool.现在,我可以使用此命令完美地查看和比较不同分支中文件的差异:

git checkout branch1
git difftool branch1:file.f90 branch2:file.f90
Run Code Online (Sandbox Code Playgroud)

我执行了上面的命令,制作并保存了变化.但是,当我使用以下方法检查文件时:

emacs file.f90
Run Code Online (Sandbox Code Playgroud)

我之前在meld中所做的更改根本没有保存.我不明白为什么会这样; 我必须没有完全正确配置融合作为差异工具.任何人都可以帮我解决这个问题吗?谢谢!!

git git-diff meld

11
推荐指数
3
解决办法
2617
查看次数