我正在考虑Git命令使用的原因
git push <remote> :<branch>
喜欢
git push origin :featureA删除远程服务器中的featureA分支.我很感兴趣为什么将冒号作为删除标志.它与众不同
git branch -d <localbranch>
为什么不做类似的事情
git branch -d --remote origin <branchname>
还是我以前从未知道过结肠符号的深层含义?
man*_*lds 77
这不是:本身的意义,而是存在的,或者说在它之前缺席的意义.
refspec格式是
<+><source>:<destination>
Run Code Online (Sandbox Code Playgroud)
(可选+非快进)
因此,当您执行类似操作时git push origin :featureA,您指定了一个空的源ref并基本上使目标为"空"或删除它.
PS:请注意,refspec :或者什么都不是并不意味着什么都不做.它使git推送"匹配"分支:对于本地端存在的每个分支,如果远程端已存在同名分支,则更新远程端.
Rya*_*art 19
冒号不是"删除标志".请注意,git push和git pull都接受零个或多个refspecs作为其最终参数.现在阅读refspecs.冒号在refspec中分隔源和目标.该命令git push origin :foo有一个空的源,基本上是说" 什么都不推送到原始的分支foo",换句话说,"make branch foo on origin not exists".