是否有可能要求git diff在其diff输出中包括未跟踪的文件,或者我最好的选择是使用git添加新创建的文件和我编辑过的现有文件,然后使用:

git diff --cached

?

我有两个大文件(一组文件名)。每个文件大约有3万行。我试图找到一种快速的方法,在file1中查找不存在于file2中的行。

例如,如果这是file1:

line1
line2
line3

这是file2:

line1
line4
line5

那么我的结果/输出应该是:

line2
line3

如此:

Grep -v -f file2 file1

但是在我的大文件上使用时,它非常非常慢。

我怀疑有一个好方法来使用diff(),但输出应该只是行,没有别的,我似乎找不到一个开关。

谁能帮我找到一种快速的方法,使用bash和基本的Linux二进制文件来做到这一点?

编辑:为了跟进我自己的问题,这是我迄今为止发现的使用diff()的最好方法:

 diff file2 file1 | grep '^>' | sed 's/^>\ //'

肯定有更好的办法吧?

我目前正在开发一个使用MySQL数据库的应用程序。

数据库结构在开发过程中仍在变化和变化(我更改本地副本,只保留测试服务器上的副本)。

是否有一种方法可以比较数据库的两个实例,以查看是否有任何更改?

虽然目前简单地丢弃之前的测试服务器数据库是可以的,但是随着测试开始输入测试数据,这可能会变得有点棘手。 同样的情况会在以后的制作中再次发生……

是否有一种简单的方法来增量地对生产数据库进行更改,最好是自动创建一个脚本来修改它?


答案中提到的工具:

Red-Gate的MySQL模式和数据比较(商用) Maatkit(现为Percona) liquibase 蟾蜍 Nob Hill数据库比较(商业) MySQL Diff SQL EDT(商用)

我试图从Git diff中排除一个文件(db/ irrelevance .php),我已经尝试将一个文件放在db子目录中,名为.gitattributes,并使用行irrelevance .php -diff 我还尝试创建了一个名为.git/info/attributes的文件,其中包含db/无关的。php。

在所有情况下,db/ irrelevance .php文件都作为Git二进制补丁包含在diff中。我想要的是由diff命令忽略对该文件的更改。我做错了什么?

我有两个具有相同文件列表的目录。我需要使用diff命令比较两个目录中存在的所有文件。是否有一个简单的命令行选项可以做到这一点,或者我必须编写一个shell脚本来获得文件列表,然后遍历它们?

我如何区分一个文件,比如pom.xml,从主分支到Git中的任意旧版本?

我有一个我正在使用Travis-CI的requirements.txt文件。在requirements.txt和setup.py中复制需求似乎很愚蠢,所以我希望在setuptools.setup中传递一个文件句柄给install_requires kwarg。

这可能吗?如果是,我该怎么做呢?

这是我的requirements.txt文件:

guessit>=0.5.2
tvdb_api>=1.8.2
hachoir-metadata>=1.3.3
hachoir-core>=1.3.3
hachoir-parser>=1.3.4

当使用带有NERDTree插件的vim编辑器在项目的树中导航时,是否有一种简单的方法可以在当前突出显示的目录下创建一个新的源代码文件?

目前,我进入我的shell,添加文件,然后刷新树。一定有更好的办法。

我喜欢使用git diff -w来忽略空白差异。但是,我刚刚注意到,它甚至忽略了行中间的空白差异。我怎么能只忽略行开头(^)或结尾($)的空白差异呢?

我有两个非常相似的开源项目的克隆库,我一直在Sublime Text 2的不同实例中工作,以达到我想要的结果。使用了这两个项目的代码。我一直在使用Git作为项目的版本控制,但没有包含原始项目。因此,我希望能够快速比较原始项目的两个文件的内容,并比较它们与我的项目之间的差异。

我希望Sublime Text 2会有一个“比较文件”功能,但我似乎在设置或在线中找不到任何与之相关的东西。完成这项任务的第三方ST2包也可以很好地工作。在ST2文本编辑器中可以完成这样的任务吗?