是否有可能要求git diff在其diff输出中包含未跟踪的文件?或者我最好的选择是添加我创建的新文件以及我编辑和使用的现有文件
git diff --cached
Run Code Online (Sandbox Code Playgroud)
?
我在一个文件上运行git-diff,但更改是在一个长行的末尾.
如果我使用光标键向右移动它会丢失颜色编码,更糟糕的是线条不会排列,这使得跟踪更改变得更加困难.
有没有办法防止这个问题,或简单地换行换行?
(通过mingw32运行git 1.5.5)
我正在寻找一个Linux命令,它将递归地比较两个目录并仅输出不同的文件名.这包括一个目录中存在的任何内容而不是另一个目录中的任何内容,反之亦然,以及文本差异.
我真的很喜欢Araxis Merge的PC图形DIFF程序.不过我不知道linux有什么用.我们在z800大型机上运行SUSE linux.如果我能得到其他人喜欢的节目的一些指示,我将不胜感激.
我有一个shell脚本,我需要检查两个文件是否相同.我这样做是为了很多文件,在我的脚本中,diff命令似乎是性能瓶颈.
这是行:
diff -q $dst $new > /dev/null
if ($status) then ...
Run Code Online (Sandbox Code Playgroud)
是否有更快的方法来比较文件,可能是自定义算法而不是默认算法diff?
我试图db/irrelevant.php从Git diff中排除一个文件().我试图把在一个文件db名为的子目录.gitattributes与行irrelevant.php -diff
,我也尝试创建一个名为.git/info/attributes包含db/irrelevant.php.
在所有情况下,该db/irrelevant.php文件都作为Git二进制补丁包含在diff中.我想要的是diff命令忽略对该文件的更改.我究竟做错了什么?
我设置git diff包装到vimdiff,使用" Git Diff with Vimdiff "作为指南,除非有许多文件有变化,否则它按预期工作.
当有多个文件有变化并且我运行时git diff,它会打开第一个文件,在退出第一个vimdiff实例后,我会看到以下消息:
external diff died, stopping at filename
Run Code Online (Sandbox Code Playgroud)
这是一种与我以前完全不同的行为.我在过去使用SVN时有类似的设置,在对多个:wq文件进行区分时,我会查看第一个文件,然后编写并退出使用,下一个文件会有差异打开.
Git不是这种情况.我试过了:n[ext],但这样做并没有用原始文件填充左侧窗口,因此可以针对修改后的版本进行区分.
我有两个大文件(文件名集).每个文件大约有30,000行.我试图找到一种快速查找file1中不存在于file2中的行的方法.
例如,如果这是file1:
line1
line2
line3
Run Code Online (Sandbox Code Playgroud)
这是file2:
line1
line4
line5
Run Code Online (Sandbox Code Playgroud)
然后我的结果/输出应该是:
line2
line3
Run Code Online (Sandbox Code Playgroud)
这有效:
grep -v -f file2 file1
但是在我的大文件上使用它时非常非常慢.
我怀疑有一个很好的方法来使用diff(),但输出应该只是行,没有别的,我似乎无法找到一个开关.
任何人都可以帮我找到一个快速的方法,使用bash和基本的Linux二进制文件?
编辑:为了跟进我自己的问题,这是我到目前为止使用diff()找到的最好方法:
diff file2 file1 | grep '^>' | sed 's/^>\ //'
Run Code Online (Sandbox Code Playgroud)
当然,必须有更好的方法吗?