Git pull:确定哪个分支包含更新
Git pull: Determining what branch contains updates
我们看到这在 git 拉动分支 myfeature
git 报告:
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
?
Why do you see Total 78 (delta 36) but then see only 9 files changed? What does the total/delta represent?
Delta是压缩保存的KiB中的space;我不确定总数,但这可能是未压缩的更改大小。
How can you determine which of the two branches (myfeature or master) contained these 78 (or 9) changes?
完全没有。 git 不是这样的。 myfeature 和 master 可以完全相同,也可以完全不相交。你看到的是变化的数量——这对你当地的状态有何影响,在另一张纸上 sheet。
一般来说,如果您在分支 "A" 中进行拉动,您 只会 通过合并到您之前或隐式指定的分支来更改该分支拉的时候。当你检查分支 "B" 并且有变化时,git 会告诉你类似
的信息
Local branch B 91 commits behind remote origin. Use git pull to update.
总数、delta 行中的数字是 git 个对象,在 this answer
中讨论得相当透彻
关于哪个分支更新了 9 个文件,您正在将 origin myfeature 拉到本地功能分支,因为这是活动分支。
Updating eb0523c..a796ad2
显示正在移动的提交 shas,您会注意到它们与 myfeature 行中列出的相同 shas:
eb0523c..a796ad2 myfeature -> origin/myfeature
在您的拉取日志中,您可以从 63c5668..a11d406
获得 master 的更新和对 myfeature eb0523c..a796ad2
的更新,例如,您可以 diff --stat
查看从 63c5668 到a11d406 来自
git diff --stat 63c5668 a11d406
并确定通过该拉动在哪个分支中更改了哪些文件。
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
.
In addition why does git indicate Total 78 (delta 36)
but then see only 9 files changed
?
正如我在上面所写的那样,前一个数字涉及从远程存储库(通常有一个,默认名为 origin
)获取更改的结果。这个数字其实就是git个对象的数量,也就是驻留在.git/objects
中的文件的数量。 9 files changed
关注当前分支(myfeature
)的快进。
我们看到这在 git 拉动分支 myfeature
git 报告:
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
?
Why do you see Total 78 (delta 36) but then see only 9 files changed? What does the total/delta represent?
Delta是压缩保存的KiB中的space;我不确定总数,但这可能是未压缩的更改大小。
How can you determine which of the two branches (myfeature or master) contained these 78 (or 9) changes?
完全没有。 git 不是这样的。 myfeature 和 master 可以完全相同,也可以完全不相交。你看到的是变化的数量——这对你当地的状态有何影响,在另一张纸上 sheet。
一般来说,如果您在分支 "A" 中进行拉动,您 只会 通过合并到您之前或隐式指定的分支来更改该分支拉的时候。当你检查分支 "B" 并且有变化时,git 会告诉你类似
的信息Local branch B 91 commits behind remote origin. Use git pull to update.
总数、delta 行中的数字是 git 个对象,在 this answer
中讨论得相当透彻关于哪个分支更新了 9 个文件,您正在将 origin myfeature 拉到本地功能分支,因为这是活动分支。
Updating eb0523c..a796ad2
显示正在移动的提交 shas,您会注意到它们与 myfeature 行中列出的相同 shas:
eb0523c..a796ad2 myfeature -> origin/myfeature
在您的拉取日志中,您可以从 63c5668..a11d406
获得 master 的更新和对 myfeature eb0523c..a796ad2
的更新,例如,您可以 diff --stat
查看从 63c5668 到a11d406 来自
git diff --stat 63c5668 a11d406
并确定通过该拉动在哪个分支中更改了哪些文件。
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
.
In addition why does git indicate
Total 78 (delta 36)
but then see only9 files changed
?
正如我在上面所写的那样,前一个数字涉及从远程存储库(通常有一个,默认名为 origin
)获取更改的结果。这个数字其实就是git个对象的数量,也就是驻留在.git/objects
中的文件的数量。 9 files changed
关注当前分支(myfeature
)的快进。