不设置上游的git推送
如果通过以下方式从主分支创建分支:不设置上游的git推送,git,version-control,Git,Version Control,如果通过以下方式从主分支创建分支: git checkout -b general 然后,我可以通过以下方式推动分支机构: git push 如果运行 git branch -vv 我可以看到general没有跟踪任何远程分支。那么,我怎样才能在没有设置任何上游的情况下推进呢 那么,我怎样才能在没有设置任何上游的情况下推进呢 使用以下命令时,git push命令仅要求具有上游设置: 设置为的push.default 简单或 上游 请注意,有五种可能的设置(请参阅):none、c
git checkout -b general
然后,我可以通过以下方式推动分支机构:
git push
如果运行
git branch -vv
我可以看到general
没有跟踪任何远程分支。那么,我怎样才能在没有设置任何上游的情况下推进呢
那么,我怎样才能在没有设置任何上游的情况下推进呢
使用以下命令时,git push
命令仅要求具有上游设置:
- 设置为的
push.default
或简单
上游
none
、current
、matching
、simple
和上游
。虽然none
将失败,但它不会因为缺少上游而失败:它失败是因为它总是失败。当前
和匹配
设置不使用当前分支的上游,事实上,匹配
甚至不要求存在当前分支
这里的第一个要点(缩进较少)表示您必须首先使用push.default
设置执行git push
。请注意:
git推送远程refspec
甚至都没有达到第一个要点,因为您为git push
提供了一个refspec参数。(见附件。)
因此,这就为您的问题提供了答案:要么在
git推送过程中指定一个refspec,要么将push.default
设置为某个值,以便缺少refspec调用您设置的不需要上游的push.default
。如果要设置分支以跟踪远程分支,你可以用
git签出-b/
下面将创建分支的本地副本,但不会设置它应跟踪到的远程分支
git签出-b常规
你能显示git push的输出吗?在git push上,它会给你一个错误和建议。这就是我在运行相同命令时得到的结果。您使用的是什么版本的Git?您可能已经定义了一个别名或其他一些配置,这些配置超越了默认行为。检查git config--list
,查看任何可能相关的内容。另外,执行git ls remote origin
(或任何您的远程名称),并显示其输出。就这样!在我的git配置中有push.default=current
。谢谢。不过,我还有一个问题。如果我有两个或多个remote
,选择哪一个?在我的例子中是origin
,但是是什么定义了这个选择呢?如果运行gitpush
,这将设置远程;如果您在没有遥控器的情况下运行git push
,git将使用当前上游的遥控器,或者如果所有其他操作都失败,git将使用origin
。当前上游是如何定义/更改的?当前分支B的上游设置来自两个git config
条目:branch.B.remote和branch.B.merge。其中一个提供远程服务器的名称。我必须检查源代码才能确定,但我怀疑如果git push
正在寻找一个远程选择,它不会使用完整的解析器,而只是选择一个分支。随便。remote
设置。