0

我有一个开发分支,我为特定功能分支。我希望能够创建/签出一个分支,进行一些提交,然后发出:

git push

或者

git push origin

推送到远程仓库。如果可能的话,任何一个命令都可以,我只是不想每次推送时都指定我的分支。我试过设置一些配置:

git config --global push.default upstream

但是当我尝试执行上述任一命令来推送时,我只会收到错误消息:

fatal: The current branch myBranch has no upstream branch. 
To push the current branch and set the remote as upstream, use:

git push --set-upstream origin myBranch

我错过了什么吗?

4

1 回答 1

2

当您在本地(使用git branchgit checkout -b)创建新分支时,这些分支只是本地分支,不包含任何跟踪信息。因此,当您推送时,他们不会自动推送并因此创建远程分支,除非您明确告诉他们这样做。

错误消息中已经提到了一种方法:git push --set-upstream origin remoteBranchNamegit push -u origin remoteBranchName简称。之后,upstream配置push.default(以及simpleGit 2.0 中的默认配置)git push将推送该分支。

您也可以尝试设置push.default为,current因为这将始终将当前分支推送到具有相同名称的远程分支。但我实际上从未尝试过,我建议不要这样做,因为它消除了upstream(或simple)实现的推和拉之间的对称性。

顺便提一句。如果远程分支已经存在,但您没有本地分支,只需检查远程分支 ( git checkout remoteBranchName) 将自动创建一个新的本地分支并设置跟踪信息。

于 2013-06-06T14:18:52.843 回答