使用Git,您如何找到当前版本和最后一个版本之间的差异?
git diff last version:HEAD
Run Code Online (Sandbox Code Playgroud)
Fra*_*uga 1098
我真的不明白"最后一个版本"的含义.
由于可以使用HEAD ^访问先前的提交,我认为您正在寻找类似的东西:
git diff HEAD^ HEAD
Run Code Online (Sandbox Code Playgroud)
从Git 1.8.5开始,@
是别名HEAD
,所以你可以使用:
git diff @~..@
Run Code Online (Sandbox Code Playgroud)
以下内容也适用:
git show
Run Code Online (Sandbox Code Playgroud)
如果你想知道head和任何提交之间的差异你可以使用:
git diff commit_id HEAD
Run Code Online (Sandbox Code Playgroud)
这将启动您的可视化差异工具(如果已配置):
git difftool HEAD^ HEAD
Run Code Online (Sandbox Code Playgroud)
由于与HEAD的比较是默认的,你可以省略它(如Orient所指出的):
git diff @^
git diff HEAD^
git diff commit_id
Run Code Online (Sandbox Code Playgroud)
~
必须使用该字符代替^
.Cha*_*esB 149
假设"当前版本"是工作目录(未提交的修改),"最后版本"是HEAD
(当前分支的最后提交修改),只需执行
git diff HEAD
Run Code Online (Sandbox Code Playgroud)
以下信用转到用户 Cerran
如果您-a
在提交时总是跳过暂存区域,那么您可以简单地使用git diff
.
摘要
git diff
显示未分级的更改. git diff --cached
显示分阶段的变化. git diff HEAD
显示所有更改(分阶段和非分阶段). 来源:git-diff(1)手册页 - Cerran
Nig*_*hto 111
正如amalloy的评论所指出的那样,如果用"当前版本和最后版本"表示最后一次提交和之前的提交,你可以简单地使用
git show
Run Code Online (Sandbox Code Playgroud)
Ori*_*ent 57
最后一次提交和最后一次提交之间的区别(加上当前状态,如果有的话):
git diff HEAD~
Run Code Online (Sandbox Code Playgroud)
甚至(更容易打字)
git diff @~
Run Code Online (Sandbox Code Playgroud)
当前分支@
的synonim 在哪里HEAD
,~
意思是"给我提到的修改的父母".
nao*_*oko 51
你也可以这样做:
与之前的提交相比
git diff --name-status HEAD~1..HEAD
Run Code Online (Sandbox Code Playgroud)
与当前和之前的两个提交进行比较
git diff --name-status HEAD~2..HEAD
Run Code Online (Sandbox Code Playgroud)
And*_*ndy 15
cached
如果您添加了,但只是尚未提交,请使用该标志:
git diff --cached --color
Run Code Online (Sandbox Code Playgroud)
首先,使用“ git log
”列出存储库的日志。
现在,选择与两个提交相关的两个提交 ID。您想查看差异(例如 - 最重要的提交和一些较旧的提交(根据您对当前版本和一些旧版本的期望))。
接下来,使用:
git diff <commit_id1> <commit_id2>
Run Code Online (Sandbox Code Playgroud)
或者
git difftool <commit_id1> <commit_id2>
Run Code Online (Sandbox Code Playgroud)
快速而简单,假设你在主人:
git diff (checkout_id):file.txt file.txt
Run Code Online (Sandbox Code Playgroud)
例:
git diff asdfioei91819280din198:file.txt file.txt
Run Code Online (Sandbox Code Playgroud)
如果 HEAD 指向顶部提交,那么您可以执行以下操作:
commit1 -> HEAD
commit2 -> HEAD~1
commit3 -> HEAD~2
Run Code Online (Sandbox Code Playgroud)
第一次和第二次提交之间的差异:
git diff HEAD~1 HEAD
Run Code Online (Sandbox Code Playgroud)
第一次和第三次提交之间的差异:
git diff HEAD~2 HEAD
Run Code Online (Sandbox Code Playgroud)
第二次和第三次提交之间的差异:
git diff HEAD~2 HEAD~1
Run Code Online (Sandbox Code Playgroud)
等等...