创建tmp
分支
提交一些临时更改
标记提交tmptag
x-x-x-y-y <- master \ z <- tmp [tmptag]
删除tmp
分支
x-x-x-y-y <- master \ z <- [tmptag]
现在我有一个提交,z
仅由标记tmptag
持有。
我理解,如果您将tmptag
推送到远程(通过名称或推送所有标签),也会推送提交z
。
还有其他命令会将z
推送到遥控器吗?
另外,如果我特意推送所有分支机构,z
将不推送,对吧?
答案 0 :(得分:3)
是的,任何说要求其他Git请设置一些名称以指向ID为z
的提交将转移提交z
。例如:
git push $(git rev-parse tmptag^{}):refs/heads/newbranch
会要求其他Git创建指向标记提交的分支newbranch
。 (当且仅当^{}
是带注释的标记时,才需要tmptag
后缀。)您还可以使用原始哈希ID和分支名称以外的其他内容,前提是其他Git允许您推送参考。
正确:由于无法从分支名称访问z
,因此不会发送(至少通常 1 )。
1 每个Git传输负责收集发送和发送它们的对象,如果某些传输是奇怪的或粗心的,它可以收集提交z
并发送它。内置推送传输(通常使用git send-pack
调用--thin
)不会这样做,但考虑一个z
是包中的基础对象并且有些已经解决的情况很有意思同一包中的对象也需要发送。