为什么"git push git push origin local-branch :development"会删除远程开发分支?



为什么"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-20170905development分支中删除

可能,你想跑

git push origin yrh-deskmonitor-20170905:development

相反。

git push的语法是这样的:

git push <target> <refspec1> <refspec2> <refspec3>

其中所有<refspec>s彼此独立,每个形式可以采用以下形式:

  1. <branch-or-tag-name>
  2. <local-refname>:<remote-branch-name>
  3. :<branch-or-tag-name>
  4. 当指定远程引用时,名称以refs/...开头时,各种"黑客"。

    • 案例 1 用于在远程存储库中创建分支,直接对应于本地存储库中的分支。这是最"自然"的用法。
    • 案例 2 用于在远程存储库中创建名称与本地存储库不同的分支(我想,您的情况)
    • 案例 3 用于删除远程存储库中的给定分支。
    • 案例 4 允许创建未签名的标签、不同的遥控器和其他类型的黑客攻击,这些黑客可以描述为"低级"。

别担心,您仍然可以通过发布git push <target> yrh-deskmonitor-20170905:development来重新创建development分支(几乎)而不会造成伤害

来自 git push 的文档:

git push origin :experimental
在源存储库中找到
与实验匹配的 ref(例如 refs/heads/experimental),并将其删除。

最新更新