当我在“develop”分支上进行更改时,我看到分支旁边的向上箭头告诉我将推送多少更改。让您感到困惑的是sourcetree如何决定这个数字是什么?
这似乎与叫做帅哥的东西有关?什么是帅哥?
是否存在返回相同数字的等价git提交?
答案 0 :(得分:17)
请注意,要推送的更改数量可能是指您在origin / master之前提交的提交数量,与hunks无关。要查看提交您的提交,您可以执行以下操作:
# get most recent commit found in both master and origin/master
mb=$(git merge-base master origin/master)
# show commits from that merge base to current head
git log $mb..HEAD
如果你想数数,只需:
mb=...
git log --pretty=oneline $mb..HEAD | wc -l
hunk
是与diff
相关的术语:
格式以与上下文格式相同的两行标题开头,但原始文件前面带有“---”,新文件前面带有“+++”。在此之后是一个或多个 change hunks ,其中包含文件中的行差异。未更改的上下文行前面有空格字符,附加行前面带有加号,删除行前面带有减号。
如果你曾经拍过两个文件的差异,你会看到这样的文件(再次来自维基百科):
--- /path/to/original ''timestamp'' +++ /path/to/new ''timestamp'' @@ -1,3 +1,9 @@ +This is an important +notice! It should +therefore be located at +the beginning of this +document! + This part of the document has stayed the same from version to @@ -5,16 +11,10 @@ be shown if it doesn't change. Otherwise, that would not be helping to -compress the size of the -changes. - -This paragraph contains -text that is outdated. -It will be deleted in the -near future. +compress anything. It is important to spell -check this dokument. On +check this document. On the other hand, a misspelled word isn't the end of the world. @@ -22,3 +22,7 @@ this paragraph needs to be changed. Things can be added after it. + +This paragraph contains +important new additions +to this document.
上面的文件有三个帅哥。如果要查看与提交关联的差异,可以使用git show [<commit>]
。要查看当前未暂存的更改与存储库之间的差异,可以使用git diff
。还有其他各种选择。
要计算帅哥的数量(这实际上是无用的,但是如果你坚持的话),你可以使用一个非常简单的脚本。
git show | grep '^@@.*@@.*$' | wc -l
第二个.*
之后@@
的原因是git的diff也显示了更改所属的函数,因此稍后可以更好地应用diff,所以hunk标题可以看起来像这样:
@@ -85,6 +85,6 @@ void urt_shmem_detach(void *mem)
答案 1 :(得分:2)
要推送的更改次数基本上是自上次推送以来您所做的提交次数。 Sourcetree通过查看提交方面的远程头和当前头之间的距离来计算它。
git status
将告诉您未提交的提交数量(=将推送的提交数量):
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
这与帅哥没什么关系,帅哥是个别差异。
答案 2 :(得分:2)
在回答 hunk 问题:
Hunk means a piece of change in the Git world.
src:https://mvtechjourney.wordpress.com/2014/08/01/git-stage-hunk-and-discard-hunk-sourcetree/
有
的建议将'hunk'替换为'change',跟随Git变得愉快。