github - git 提交到远程分支的诡异错误

 小傲骄FMJ 发布于 2022-10-25 09:59

我想把我的本地分支push到github上的远程分支上,假设我的本地分知名是A,远程分支名也是A, 我刚开始输入如下命令:

git push origin A : A

结果报错:

error: dst ref refs/heads/A receives from more than one src. error: failed to push some refs to 'git@github.com:ningyu/algos.git'

google不到答案,我就尝试着把命令中冒号两边的空格去掉,因为有文章用的命令是没有空格的。

git push origin A:A

结果竟然提交成功。我提交后又试了一下有空格的命令,还是同样的错误。

请问大家这个是怎么回事,是真的由空格导致的吗?

2 个回答
  • 请不要踩我,我怕我说的比较难理解。

    我在看《精通正则表达式》时,读到一个说法,我们或许可以把空格符当作shell的元字符(且不说是分隔符),只是空格符这种元字符的作用是用来分割字符的,用来分割命令行参数的,举例说,我们写shell程序时不需要再使用args.split('\s')的方法来分割命令参数,直接取$0$1... 就可以了。

    在这个问题上的话,我认为A:A应该是一个完整的一部分。

    2022-10-26 23:05 回答
  • 对于使用者来说,是由于空格导致的问题。shell 中空格导致的问题不少,比如这个一个空格引发的惨剧。

    对于 git 来说,是你的参数不对。它明明要三个参数「push」「origin」以及「A:A」的,你却给它五个:「push」「origin」「A」「:」「A」。

    PS: git push origin A:A 可简写为 git push orgin A

    2022-10-26 23:05 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有