Git 查找当前版本和上一版本之间的差异
使用Git,您如何找到当前版本和上一版本之间的差异Git 查找当前版本和上一版本之间的差异,git,Git,使用Git,您如何找到当前版本和上一版本之间的差异 git diff last version:HEAD 假设“当前版本”是工作目录(未提交的修改),“最后版本”是HEAD(当前分支的最后提交的修改),只需执行以下操作 git diff HEAD 用户Cerran将获得以下奖励 如果在提交时总是使用-a跳过暂存区域,那么只需使用git diff 摘要 git diff显示未老化的更改 git diff--cached显示阶段性更改 git diff HEAD显示所有更改(分阶段和未分阶段)
git diff last version:HEAD
假设“当前版本”是工作目录(未提交的修改),“最后版本”是HEAD
(当前分支的最后提交的修改),只需执行以下操作
git diff HEAD
用户Cerran
将获得以下奖励
如果在提交时总是使用
-a
跳过暂存区域,那么只需使用git diff
摘要
git diff
显示未老化的更改git diff--cached
显示阶段性更改git diff HEAD
显示所有更改(分阶段和未分阶段)资料来源:git diff(1)手册页–Cerran我真的不理解“最新版本”的含义 由于可以使用HEAD^访问上一次提交,我认为您正在寻找以下内容:
git diff HEAD^ HEAD
从Git 1.8.5开始,
@
是头的别名,因此您可以使用:
git diff @~..@
git diff commit_id HEAD
以下工作也将起作用:
git show
如果您想知道head和任何提交之间的差异,可以使用:
git diff @~..@
git diff commit_id HEAD
这将启动您的visual diff工具(如果已配置):
由于与HEAD的比较是默认值,因此可以忽略它(如所指出的):
警告
- @ScottF和@Panzercrisis在评论中解释说,在Windows上必须使用
~
字符,而不是^
您也可以这样做:
与上一次提交进行比较
git diff --name-status HEAD~1..HEAD
与当前和前两次提交进行比较
git diff --name-status HEAD~2..HEAD
如果您添加了,但尚未提交,只需使用cached
标志即可:
git diff --cached --color
最后一次提交和最后一次提交之间的差异(加上当前状态,如果有):
甚至(更容易打字)
其中,@
是当前分支机构的负责人
的同义词,~
的意思是“给我所述修订的父项”。正如by上所指出的,如果“当前和最后版本”指的是最后一次提交和之前的提交,您可以简单地使用
git show
首先,使用“git log
”列出存储库的日志
现在,选择与这两个提交相关的两个提交ID。您希望看到差异(示例-最上面的提交和一些较旧的提交(根据您对当前版本和一些旧版本的期望))
接下来,使用:
git diff <commit_id1> <commit_id2>
git-diff
或
git difftool <commit_id1> <commit_id2>
git difftool
快速而简单,假设您在master中:
git diff (checkout_id):file.txt file.txt
例如:
git diff asdfioei91819280din198:file.txt file.txt
我使用安装了Eclipse插件的IDE
我将文件与其历史记录的任何版本进行比较(如)
菜单项目浏览器→ 文件→ 右击→ 团队→ 显示在历史上
这将带来该文件上所有更改的历史记录。
现在按住Ctrl键单击并选择任意两个版本→ “相互比较”。这也适用于标记(如果需要查看所有更改,请删除下面的“uniq”和其他部分):
以下内容与此相同,这对于单一存储库中的微服务(CI)可能很有用:
git diff v1.58 HEAD --name-only | sort -u | awk 'BEGIN {FS="/"} {print $1}' | uniq
<Folder Name>
git diff v1.58 HEAD--name only | sort-u | awk'BEGIN{FS=“/”}{print$1}}| uniq
(信用-如果顶部提交由HEAD指向,那么您可以这样做:
commit1 -> HEAD
commit2 -> HEAD~1
commit3 -> HEAD~2
第一次和第二次提交之间的差异:
git diff HEAD~1 HEAD
第一次和第三次提交之间的差异:
git diff HEAD~2 HEAD
git diff HEAD~2 HEAD~1
第二次和第三次提交之间的差异:
git diff HEAD~2 HEAD
git diff HEAD~2 HEAD~1
以此类推……以显示提交中的个人更改,并向头部显示
git show Head~0
git diff Head~0
要显示提交中的累积的更改,请单击“开始”
git show Head~0
git diff Head~0
其中0是所需的提交次数。如果最后版本表示最后一个标记,而当前版本表示头部(当前状态),则与最后一个标记不同:
寻找:
最后一个标签是:
$ git tag --list | tail -n 1
v20.11.25.351
综合起来:
tag=$(git tag --list | tail -n 1)
git diff $tag
如果要更改最后一次提交的n
committes,可以使用以下命令:
git差异头~n
因此,对于当前提交中的最后5次提交(包括当前提交),它将是:
$ git tag --list | tail -n 1
v20.11.25.351
git-diff-HEAD~5
我想要像提交版和之前的版本一样的东西……git-diff-HEAD-1作为git 1.8.5的别名,@
是HEAD
的别名。由于~
和^
在只返回一次提交时是相同的,我发现git diff~..
更容易键入。@Andrewgit show
更容易,因为@~..@
是默认要显示的内容。git show
的问题是,如果HEAD
是一个合并提交,您将无法获得您期望的结果,因为合并提交本身可能没有任何更改git diff HEAD^HEAD
将显示版本之间的实际更改备注:对于Windows命令提示符,^
是转义字符。可以键入^
来表示^
,如果在提交时总是使用-a
跳过暂存区域,则可以简单地使用git diff
<代码>git diff
显示未老化的更改git diff--cached
显示分段更改<代码>git diff HEAD显示所有更改(分阶段和未分阶段)。来源:这应该是公认的答案,因为它回答了问题的意图。git中“当前未老化版本”的名称是什么?真的有名字吗?这就是我要找的。回答得很好。使用git show HEAD~1
显示最后一次提交,使用git show HEAD~2
等方式显示较早的提交。通过git Show HEAD~2 my_file
只显示一个文件。我非常喜欢git diff HEAD^
(而不是等效的HEAD~
表单)。对于像我这样的“老家伙”来说,这更容易记住;-)胡萝卜在一些码头是个问题。很高兴有选择权。回答可以通过解释来改进