我们看到这样做git pull on branch myfeature
git reports:
remote: Counting objects: 78, done.
remote: Compressing objects: 100% (74/74), done.
remote: Total 78 (delta 36), reused 0 (delta 0)
Unpacking objects: 100% (78/78), done.
From ssh://stash.xeon.net:7999/core/myproject
eb0523c..a796ad2 myfeature -> origin/myfeature
63c5668..a11d406 master -> origin/master
* [new tag] myproject-7.9.0.13 -> myproject-7.9.0.13
* [new tag] myproject-8.0.0.0 -> myproject-8.0.0.0
Updating eb0523c..a796ad2
Fast-forward
xxxmyproject/pom.xml | 2 +-
app/pom.xml | 2 +-
database/pom.xml | 2 +-
distribution/pom.xml | 2 +-
env/pom.xml | 2 +-
pom.xml | 2 +-
server/pom.xml | 2 +-
web/pom.xml | 2 +-
xsd/pom.xml | 2 +-
9 files changed, 9 insertions(+), 9 deletions(-)
如何确定这两个分支(myfeature或master)中的哪一个包含78(或9)个变化?
另外为什么git会指出Total 78 (delta 36)
但是只能看到9 files changed
?
答案 0 :(得分:2)
总delta线中的数字是git对象,在this answer
中进行了详细讨论至于哪个分支更新了9个文件,您将原始myfeature拉到本地功能分支,因为这是活动分支。
Updating eb0523c..a796ad2
向您显示正在移动的提交shas,您会注意到它们与myfeature行中列出的shas相同:
eb0523c..a796ad2 myfeature -> origin/myfeature
答案 1 :(得分:1)
为什么你会看到Total 78(delta 36)但是只看到9个文件发生了变化?总/ delta表示什么?
Delta是压缩后保存的KiB空间;我总的来说并不完全确定,但这可能是未经压缩的变化大小。
如何确定这两个分支(myfeature或master)中的哪一个包含78(或9)个变化?
完全没有。这不是git的工作方式。 myfeature和master可以完全相同,或完全不相交。你看到的是变化的数量 - 这对你的当地国家的影响在另一张纸上。
一般来说,如果你在分支" A"并且执行拉动,您将仅通过合并您在拉动时指定或隐式指定的分支来更改该分支。当你结帐分支" B",并且有变化时,git会告诉你类似的东西
Local branch B 91 commits behind remote origin. Use git pull to update.
答案 2 :(得分:1)
在您的提取日志中,您可以获得63c5668..a11d406
的主人更新以及myfeature eb0523c..a796ad2
的更新,例如diff --stat
可以查看从63c5668移至a11d406的更改内容
git diff --stat 63c5668 a11d406
并通过拉动确定哪个文件在哪个分支中发生了变化。
答案 3 :(得分:1)
remote: Counting objects: 78, done.
remote: Compressing objects: 100% (74/74), done.
remote: Total 78 (delta 36), reused 0 (delta 0)
Unpacking objects: 100% (78/78), done.
From ssh://stash.xeon.net:7999/core/myproject
eb0523c..a796ad2 myfeature -> origin/myfeature
63c5668..a11d406 master -> origin/master
* [new tag] myproject-7.9.0.13 -> myproject-7.9.0.13
* [new tag] myproject-8.0.0.0 -> myproject-8.0.0.0
这部分输出涉及整个存储库,而不是任何一个分支。
git pull
实际上是一个便利命令,相当于运行git fetch
,然后将当前分支快速转发到其远程上游(如果有)。上面引用的输出来自git fetch
。
另外,为什么git会指出
Total 78 (delta 36)
但是只能看到9 files changed
?
正如我上面所写,前一个数字涉及从远程存储库获取更改的结果(通常有一个,默认情况下名为origin
)。该数字实际上是指git对象的数量,即驻留在.git/objects
中的文件。 9 files changed
涉及当前分支的快进(myfeature
)。