为什么"git push git push origin local-branch :d evelopment"会删除远程开发分支?
jackiewillen ~/Documents/work/ git push origin yrh-deskmonitor-20170905 :development
Enter passphrase for key '.ssh/id_rsa':
To ssh://git.dianpingoa.com/ed-f2e/gandalf-plus.git
- [deleted] development
我尝试"推送原点本地分支:开发"是可以的!所以问题出在分号上;分号前的空格与否是不同的。为什么?
问题是yrh-deskmonitor-20170905 :development
之间的空间
您已按原样推送yrh-deskmonitor-20170905
并development
分支中删除
可能,你想跑
git push origin yrh-deskmonitor-20170905:development
相反。
git push
的语法是这样的:
git push <target> <refspec1> <refspec2> <refspec3>
其中所有<refspec>s
彼此独立,每个形式可以采用以下形式:
<branch-or-tag-name>
<local-refname>:<remote-branch-name>
:<branch-or-tag-name>
当指定远程引用时,名称以
refs/...
开头时,各种"黑客"。- 案例 1 用于在远程存储库中创建分支,直接对应于本地存储库中的分支。这是最"自然"的用法。
- 案例 2 用于在远程存储库中创建名称与本地存储库不同的分支(我想,您的情况)
- 案例 3 用于删除远程存储库中的给定分支。
- 案例 4 允许创建未签名的标签、不同的遥控器和其他类型的黑客攻击,这些黑客可以描述为"低级"。
别担心,您仍然可以通过发布git push <target> yrh-deskmonitor-20170905:development
来重新创建development
分支(几乎)而不会造成伤害
来自 git push 的文档:
git push origin :experimental
在源存储库中找到
与实验匹配的 ref(例如 refs/heads/experimental),并将其删除。