med*_*iev 50 git cvs version-control diff mercurial
我继承了最初存储在CVS中的项目以及所有修订版.我做了很多编辑,我试图比较我在原始目录中所做的所有更改,关于添加的新文件与旧文件.
是否有某种实用的hg/git,我可以做一个树差异,或者那种性质的东西?那么说,新添加的文件,删除的文件之间有标记,我要求的太多了吗?
use*_*ca8 80
为了简单地创建一个diff补丁从任意两个文件或目录,Git的差异格式,没有任何花哨的东西,仓库或版本控制:
git diff --no-index some/path other/path >> some_filename
Run Code Online (Sandbox Code Playgroud)
JakubNarębski对knittl答案的评论暗示了答案......为了简单起见,这就是完整的命令.
该>>部件创建一个文件并将输出重定向到它.如果您不想要文件并且只想在控制台中打印输出以便复制它,只需删除该>> some_filename部件即可.
为方便复制和粘贴,如果您已经cd编辑到包含名为的原始目录/文件a和修改后的目录的目录b,它将是:
git diff --no-index a b >> patch
Run Code Online (Sandbox Code Playgroud)
Jak*_*ski 22
git diff [--options] [--] [<path>...][...]
如果给出了两条路径,并且至少有一条未跟踪,则比较两个文件/目录.这种行为可以强制执行--no-index.
如果您想在两个不同的存储库中比较两个版本(例如两个标记版本或两个分支),您可以使用Git Wiki上的GitTips页面中描述的技巧,在"如何比较两个本地存储库"下.
假设您在一个存储库中,并且第二个存储库位于其中/path/to/repo,那么它的GIT_DIR /path/to/repo/.git如果它是非裸存储库,则可以执行以下操作:
$ GIT_ALTERNATE_OBJECT_DIRECTORIES=/path/to/repo/.git/objects \
git diff $(git --git-dir=/path/to/repo/.git rev-parse --verify A) B
Run Code Online (Sandbox Code Playgroud)
其中A和B是您要比较的修订版.当然,您也可以在上面的表达式中指定路径限制器.
说明: GIT_ALTERNATE_OBJECT_REPOSITORIES变量可用于使git命令连接两个存储库的对象数据库. git --git-dir=... rev-parse ...用于将作为参数的存储库中的名称(扩展SHA-1表达式)git-dir转换为唯一的SHA-1标识符.该$( ... )构造在命令行中调用给定命令的结果. git diff用于比较两个修订版(其中一个来自备用对象存储库).
替代解决方案是使用(和)将其他存储库导入到给定的存储库中.然后你就可以在本地获得所有东西,并且可以在单个存储库中进行比较.git remote addgit fetch
Sha*_*tin 10
是否有某种实用的hg/git我可以做树差异... [s] o说,新添加的文件,删除的文件之间有一个标记 ... [强调添加]
是.我们可以git diff将当前目录对另一个目录和...
...标记添加,删除和修改的文件:
git diff --name-status --no-index ./ path/to/other/dir
Run Code Online (Sandbox Code Playgroud)
...仅显示添加的文件:
git diff --diff-filter=A --name-status --no-index ./ path/to/other/dir
Run Code Online (Sandbox Code Playgroud)
...仅显示已删除的文件:
git diff --diff-filter=D --name-status --no-index ./ path/to/other/dir
Run Code Online (Sandbox Code Playgroud)
...仅显示已修改的文件:
git diff --diff-filter=M --name-status --no-index ./ path/to/other/dir
Run Code Online (Sandbox Code Playgroud)
另见:https://git-scm.com/docs/git-diff
git diff正是这样做的。但它只适用于 git 项目。
hg diff,svn diff几乎每个版本控制系统都可以比较目录树
| 归档时间: |
|
| 查看次数: |
54757 次 |
| 最近记录: |