标签: diff

为什么"git difftool"不能直接打开工具?

我这样配置git:

git config --global diff.tool meld
Run Code Online (Sandbox Code Playgroud)

当我跑:

git difftool
Run Code Online (Sandbox Code Playgroud)

我收到以下消息:

Viewing: 'hello.txt'
Hit return to launch 'meld': 
Run Code Online (Sandbox Code Playgroud)

然后,如果我按Enter,meld将启动.

如何禁用此消息,以便meld在键入后立即启动git difftool

git diff difftool

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

查看分支与融合的差异?

我知道我可以查看HEAD和当前状态之间的区别meld ..但是,如何查看分支之间的差异,例如masterdevelmeld?

目前我执行以下步骤:

  1. 重命名工作副本的文件夹
    例如mv /projectA /projectA_master)
  2. 再次克隆项目
    git clone url
  3. 切换到devel分支
    cd projectA && git -b devel origin/devel
  4. 查看与meld的差异
    meld /projectA_Master projectA

难道没有一种更简单的方法可以在融合中获得相同的结果吗?我只需要它来审查更改,而不是主要用于合并.

git diff branch meld

149
推荐指数
6
解决办法
8万
查看次数

当前分支和主服务器之间的Git差异,但不包括未合并的主提交

我想要一个尚未合并到master的分支中的所有更改的差异.

我试过了:

git diff master
git diff branch..master
git diff branch...master
Run Code Online (Sandbox Code Playgroud)

但是,在每种情况下,diff都包含master中尚未合并到我的分支中的内容.

有没有办法在我的分支和主人之间做一个差异,排除了尚未合并到我的分支的主人的变化呢?

git version-control diff merge git-diff

147
推荐指数
4
解决办法
15万
查看次数

在git-diff的输出中着色白色空间

关于代码格式化我有点纯粹:).我经常删除不必要的空格(只有ws的行,行末尾的ws等).我甚至设置了vim来显示那种颜色为红色的线条.

我的问题是使用git-diff我经常看到这样的东西:

-      else{ 
+      else{
Run Code Online (Sandbox Code Playgroud)

即使我有git-diff颜色,我也看不出差异(在那种特殊情况下,我在行尾删除了1个ws).有没有办法告诉git-diff显示ws变成红色?(例如与/\s + $/regexp匹配的那些).

git diff whitespace colors

145
推荐指数
4
解决办法
5万
查看次数

如何从另一个文件A中删除文件B上出现的行?

我有一个大文件A(包含电子邮件),每封邮件一行.我还有另一个包含另一组邮件的文件B.

我将使用哪个命令从文件A中删除文件B中出现的所有地址.

所以,如果文件A包含:

A
B
C
Run Code Online (Sandbox Code Playgroud)

和文件B包含:

B    
D
E
Run Code Online (Sandbox Code Playgroud)

然后文件A应该留下:

A
C
Run Code Online (Sandbox Code Playgroud)

现在我知道这是一个可能经常被问到的问题,但我只在网上发现了一个命令错误的分隔符.

任何帮助将非常感激!有人肯定会想出一个聪明的单行,但我不是shell专家.

linux shell diff grep sed

144
推荐指数
6
解决办法
8万
查看次数

两个程序的Diff输出没有临时文件

说我有太多的程序ab,我可以跑./a./b.

是否可以在不首先写入临时文件的情况下区分其输出?

bash diff file

142
推荐指数
5
解决办法
3万
查看次数

你如何在Bash中区分两个管道?

如何在不使用Bash中的临时文件的情况下区分两个管道?假设您有两个命令管道:

foo | bar
baz | quux
Run Code Online (Sandbox Code Playgroud)

而且你想diff在他们的输出中找到它们.一个解决方案显然是:

foo | bar > /tmp/a
baz | quux > /tmp/b
diff /tmp/a /tmp/b
Run Code Online (Sandbox Code Playgroud)

是否可以在Bash中不使用临时文件的情况下这样做?您可以通过在其中一个管道中管道来消除一个临时文件:

foo | bar > /tmp/a
baz | quux | diff /tmp/a -
Run Code Online (Sandbox Code Playgroud)

但是你不能同时将两个管道同时传输到diff中(至少不是以任何明显的方式).是否有一些聪明的技巧涉及/dev/fd不使用临时文件这样做?

bash diff pipeline

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

我可以让git将UTF-16文件识别为文本吗?

我在git中跟踪虚拟PC虚拟机文件(*.vmc),在进行更改后,git将该文件识别为二进制文件并且不会为我进行区分.我发现该文件是用UTF-16编码的.

可以教git识别这个文件是文本并适当处理它吗?

我在Cygwin下使用git,core.autocrlf设置为false.如果需要,我可以在UNIX下使用mSysGit或git.

git unicode diff utf-16 character-encoding

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

突出显示PHP中两个字符串之间的差异

在PHP中突出显示两个字符串之间差异的最简单方法是什么?

我正在考虑Stack Overflow编辑历史记录页面,其中新文本为绿色,删除的文本为红色.如果有任何预先编写的函数或类可用,那将是理想的.

php string diff word-diff

134
推荐指数
7
解决办法
10万
查看次数

如何在Windows上应用diff补丁?

有很多程序可以创建一个差异补丁,但我有一点时间试图应用一个.我正在尝试分发补丁,我从用户那里得到了一个关于如何应用补丁的问题.所以我试着自己搞清楚,发现我没有线索,我能找到的大多数工具都是命令行.(我可以处理一个命令行,但是很多人在没有友好的GUI的情况下会丢失.所以这些都不利于此目的.)

我尝试过使用TortoiseSVN.我有我想申请的补丁.我右键单击补丁,TortoiseSVN子菜单下有一个选项,上面写着"Apply patch".它只是拉出一个空窗口.

所以我试着点击Open.它有两个选项:合并和应用统一差异.(幸运的是,补丁采用统一的差异格式.)但是普通的apply选项不起作用:它要求补丁和文件夹.不知怎的,它忘了要求文件应用补丁!所以TortoiseSVN只是简单的不起作用.是否有基于Windows GUI的实用程序,它将获取补丁和文件并正确应用它?

编辑:看看到目前为止的回复,似乎Tortoise只会在它已经版本化的文件中正确执行.情况并非如此.我需要能够将补丁应用于不是来自SVN存储库的文件.我只是尝试使用Tortoise,因为我碰巧知道SVN使用差异并且必须知道如何创建它们并应用它们.

windows diff patch

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