使用Git,您如何找到当前版本和最新版本之间的差异?
git diff last version:HEAD
答案 0 :(得分:1016)
我真的不明白“最后一个版本”的含义。
由于可以使用HEAD ^访问先前的提交,我认为您正在寻找类似的内容:
git diff HEAD^ HEAD
从Git 1.8.5开始,@
是HEAD
的别名,因此您可以使用:
git diff @~..@
以下内容也适用:
git show
如果你想知道head和任何提交之间的区别,你可以使用:
git diff commit_id HEAD
这将启动您的视觉差异工具(如果已配置):
git difftool HEAD^ HEAD
由于与HEAD的比较是默认的,你可以省略它(正如Orient指出的那样):
git diff @^
git diff HEAD^
git diff commit_id
~
字符而不是^
。答案 1 :(得分:140)
假设“当前版本”是工作目录(未提交的修改),“最后版本”是HEAD
(当前分支的最后提交修改),只需执行
git diff HEAD
以下内容归功于用户Cerran
如果您在提交时始终使用-a
跳过暂存区域,则可以使用git diff
。
<强>摘要强>
git diff
显示未分阶段的更改。 git diff --cached
显示了分阶段的更改。 git diff HEAD
显示所有更改(分阶段和非分阶段)。 资料来源:git-diff(1)手册页 - Cerran
答案 2 :(得分:102)
答案 3 :(得分:51)
最后一次提交和最后一次提交之间的区别(加上当前状态,如果有的话):
git diff HEAD~
甚至(更容易打字)
git diff @~
其中@
是当前分支的HEAD
的synonim,~
表示“给我提到的修订的父级”。
答案 4 :(得分:50)
你也可以这样做:
与之前的提交进行比较
git diff --name-status HEAD~1..HEAD
与当前和之前的两次提交进行比较
git diff --name-status HEAD~2..HEAD
答案 5 :(得分:15)
如果您添加了cached
标记,但尚未提交,请使用
git diff --cached --color
答案 6 :(得分:6)
快速而简单,假设你是主人:
git diff (checkout_id):file.txt file.txt
示例:
git diff asdfioei91819280din198:file.txt file.txt
答案 7 :(得分:4)
首先,使用“Public OldD2 As Variant
Private Sub Worksheet_Calculate()
If Range("D2").Value <> OldD2 Then
Application.EnableEvents = False
Range("E2").Value = Now
OldD2 = Range("D2").Value
Application.EnableEvents = True
End If
End Sub
”列出仓库中的日志。
现在,选择两个commit-id,相关两个提交,你想要看到差异(示例 - 最顶层的提交和一些较旧的提交[根据您的期望]当前版本和一些旧版本] )。
接下来,使用:
git log
或强>
git diff <commit_id1> <commit_id2>
答案 8 :(得分:1)
我将bitbucket与Eclipse IDE一起安装了Eclipse EGit插件。 我比较了文件历史记录的任何版本(例如SVN)。
项目资源管理器>文件右键单击>团队>在历史记录中显示
这将带来该文件上所有更改的历史记录。 现在,按CTRL键并单击并选择任意两个版本>“相互比较”
答案 9 :(得分:1)
这也适用于标签。 (如果需要查看所有更改,请删除下面的“ uniq”和其他部分)
git diff v1.58 HEAD
下面是相同的,这可能对Monorepo中微服务的CI有用
git diff v1.58 HEAD --name-only | sort -u | awk 'BEGIN {FS="/"} {print $1}' | uniq
<Folder Name>
(信用-https://dzone.com/articles/build-test-and-deploy-apps-independently-from-a-mo)
答案 10 :(得分:1)
如果顶部提交是由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
以此类推...
答案 11 :(得分:1)
显示个人更改中的内容,
git show Head~0
显示一次提交中的累计更改。
git diff Head~0
其中0是所需的提交次数。
答案 12 :(得分:0)
如果最新版本表示 last标签,而当前版本表示HEAD(当前状态),则仅是与last标签的差异:
正在寻找tags:
$ git tag --list
...
v20.11.23.4
v20.11.25.1
v20.11.25.2
v20.11.25.351
最后一个标签是:
$ git tag --list | tail -n 1
v20.11.25.351
将它们放在一起:
tag=$(git tag --list | tail -n 1)
git diff $tag
答案 13 :(得分:0)
如果要更改最后issue = jira.issue(str(sys.argv[3]))
jira.transition_issue(issue, transition='Close', resolution={'name':'Cannot Reproduce'})
次提交,可以使用以下命令:
n
因此,对于当前提交中的最后5次提交(包括当前提交在内的计数),将为:
git diff HEAD~n