git-自创建以来对分支的更改?
我总是问自己一些关于我创建的分支的问题,这些问题我还没有决定如何完成:git-自创建以来对分支的更改?,git,branch,msysgit,Git,Branch,Msysgit,我总是问自己一些关于我创建的分支的问题,这些问题我还没有决定如何完成: 我在分行更改了哪些文件 我对分支的实际更改(差异)是什么 我向分支机构提交的日志是什么 现在,我想if知道了如何使用git cherry master获取提交到分支但未合并到master的所有提交的哈希值。有了这个,我可以一个接一个地散列,然后计算出所有内容,但是如果你有很多提交,这可能会很耗时。注意,我不想和当前的master状态进行比较。我认为关键是知道你创建分支的master的散列,但我不确定如何确定这一点 对于更改的
现在,我想if知道了如何使用
git cherry master
获取提交到分支但未合并到master的所有提交的哈希值。有了这个,我可以一个接一个地散列,然后计算出所有内容,但是如果你有很多提交,这可能会很耗时。注意,我不想和当前的master状态进行比较。我认为关键是知道你创建分支的master的散列,但我不确定如何确定这一点 对于更改的文件列表和实际差异,如果您知道要比较的两个提交,则更有意义
如果要查看START\u SHA1
和END\u SHA1
之间的差异,可以执行以下操作:
git diff START_SHA1 END_SHA1
git diff --name-only START_SHA1 END_SHA1
git diff --name-status START_SHA1 END_SHA1
如果只需要文件列表,可以执行以下操作:
git diff START_SHA1 END_SHA1
git diff --name-only START_SHA1 END_SHA1
git diff --name-status START_SHA1 END_SHA1
如果您还想知道文件中发生了什么类型的更改(如A
,M
,D
,C
,R
,U
),您可以执行以下操作:
git diff START_SHA1 END_SHA1
git diff --name-only START_SHA1 END_SHA1
git diff --name-status START_SHA1 END_SHA1
要找到当前结帐与主分支的不同之处
base=`git merge-base master HEAD`
echo $base
要了解自那以后更改了哪些文件
git diff --name-only $base HEAD
显示累积的差异
git diff $base HEAD
当您想要描述一系列提交时,可以使用上面链接的答案Gabriele Petronella中的语法,
master..HEAD
是HEAD^master
的缩写,意思是“所有提交都可以从HEAD访问,但不包括从master访问的提交”。缺少端点默认为HEAD,因此您可以说git log--oneline master..
假设您从master
分支
一,。分支后哪些文件发生了更改
git差异主机--仅此而已
二,。分支后的完全差异是什么
git差异主机。。。
三,。分支后的提交日志是什么
git日志主机。。
如果签出了它,则不需要指定
(例如,git diff master…
)
注意:git diff
需要三个点…
和git log
需要两个点。
才能获得您要求的行为
有关点语法的说明,请参见:
git difftool$base HEAD--dir
。当对别人的分支进行代码审查时,它很有用。我更喜欢git diff master--stat
当我想查看已更改文件的列表时。