gpt4 book ai didi

git - origin/branch_name 和 branch_name 之间的区别?

转载 作者:IT王子 更新时间:2023-10-29 01:28:22 25 4
gpt4 key购买 nike

用于推送到 bitbucket。

如果我这样做:git push origin origin/branch_name 我的提交不会被推送。

Total 0 (delta 0), reused 0 (delta 0)

如果我执行 git push origin branch_name 我的提交被推送:

Counting objects: 160, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (13/13), done.
Writing objects: 100% (20/20), 2.10 KiB | 0 bytes/s, done.
Total 20 (delta 6), reused 0 (delta 0)

那么 branch_name 前面的 origin/mean 是什么?为什么这很重要?

最佳答案

你必须记住,有不同类型的分支:

  • (纯粹)本地分支,即您 promise 的分支,
  • 驻留在远程存储库中的分支,找不到更好的术语了。您可能知道远程名称下的相关远程存储库,例如 origin。不过,从该存储库的角度来看,这样的分支是本地。欢迎使用分布式版本控制! :)
  • 远程跟踪 分支机构。也简称为远程分支,如Pro Git book ,但我觉得这个短语令人困惑; remote-tracking branch 更准确。它们是特殊的本地分支,其唯一目的是反射(reflect)您上次与服务器通信时位于远程存储库中的分支的状态。特别是,您不能提交此类分支。

这里,branch_name 是一个本地 分支,而origin/branch_name 是一个远程跟踪 分支;它反射(reflect)了位于 origin 中的相应分支的状态。

刚跑完

git fetch

remote-tracking 分支 origin/master 和位于 origin 中的相应分支应该是完美的同步(当然,模并发推送到远程服务器)。那么,这应该不足为奇了

git push origin origin/branch_name

不推送任何内容:您实质上是在尝试推送存在于 origin 中的相应分支的祖先中的内容。

但是,如果您的本地 分支 branch_name 领先于一个或多个提交,

enter image description here

然后运行

git push origin branch_name

将推送包含在 branch_name 中但不包含在 origin 中的分支中的提交:

enter image description here

关于git - origin/branch_name 和 branch_name 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26125162/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com