繁体   English   中英

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

[英]why "git push git push origin local-branch :development" will delete remote development branch?

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

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

我尝试“push origin local-branch:development”是可以的!所以问题出在分号上;分号前是否有空格是不同的。为什么?

问题是yrh-deskmonitor-20170905 :development之间的空间

您已yrh-deskmonitor-20170905推送yrh-deskmonitor-20170905并删除了development分支

也许,你想跑

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 以refs/...开头的名称指定时的各种“黑客”。

    • case 1 用于在远程 repo 中创建分支,直接对应本地 repo 中的分支。 这是最“自然”的用法。
    • 案例 2 用于在远程仓库中创建一个名称与本地不同的分支(我想,你的情况)
    • 情况 3 用于删除远程仓库中的给定分支。
    • 案例 4 允许创建未签名的标签、不同的遥控器和其他可以被描述为“低级”的黑客。

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

从 git push 的文档中:

git push 起源:实验
找到一个与实验匹配的参考
源存储库(例如 refs/heads/experimental),并删除它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM