创建了一个本地分支,我想向上游“推送”。Stack Overflow 上有一个关于如何跟踪新创建的远程分支的类似问题。
但是,我的工作流程略有不同。首先我想创建一个本地分支,只有当我满意并且想要共享我的分支时,我才会将它推送到上游。
从Git 2.0 开始,行为变得更加简单:
您可以配置 gitpush.default = current以使生活更轻松:
push.default = current
我添加了这个,所以现在我可以向上游推送一个新分支
$ git push -u
-u将跟踪同名的远程分支。现在使用此配置,您将自动猜测对 git push 的远程引用。来自git.config 文档:
-u
push.default 如果没有明确给出 refspec,定义 git push 应该采取的行动。 push.default = current- 推送当前分支以更新接收端的同名分支。适用于中央和非中央工作流程。
push.default
如果没有明确给出 refspec,定义 git push 应该采取的行动。
push.default = current- 推送当前分支以更新接收端的同名分支。适用于中央和非中央工作流程。
对我来说,这是对我日常 Git 工作流程的一个很好的简化。配置设置处理“通常”用例,您在本地添加分支并希望远程创建它。此外,我可以通过做git co remote_branch_name(而不是使用--set-upstream-to标志)轻松地从远程创建本地分支。
git co remote_branch_name
--set-upstream-to
我知道这个问题和接受的答案相当陈旧,但行为已经改变,因此现在存在配置选项以使您的工作流程更简单。
要添加到全局 Git 配置,请在命令行上运行:
$ git config --global push.default current
首先,您在本地创建分支:
git checkout -b <branch-name> # Create a new branch and check it out
将远程分支推送到远程服务器时会自动创建远程分支。因此,当您准备好时,您可以执行以下操作:
git push <remote-name> <branch-name>
Where <remote-name>is 通常origin,git 为您克隆的远程设备提供的名称。然后,您的同事只需拉出该分支,它就会在本地自动创建。
<remote-name>
origin
但是请注意,正式的格式是:
git push <remote-name> <local-branch-name>:<remote-branch-name>
但是当你省略一个时,它假定两个分支名称是相同的。话虽如此,请注意,不要犯只指定:<remote-branch-name>(用冒号)的严重错误,否则远程分支将被删除!
:<remote-branch-name>
为了让后续git pull知道该做什么,您可能想要使用:
git pull
git push --set-upstream <remote-name> <local-branch-name>
如下所述,该--set-upstream选项设置上游分支:
--set-upstream
对于每个最新或成功推送的分支,添加上游(跟踪)引用,由无参数 git-pull(1) 和其他命令使用。