一尘不染

如何创建远程 Git 分支?

git

创建了一个本地分支,我想向上游“推送”。Stack Overflow 上有一个关于如何跟踪新创建的远程分支的类似问题。

但是,我的工作流程略有不同。首先我想创建一个本地分支,只有当我满意并且想要共享我的分支时,我才会将它推送到上游。

  • 我该怎么做?(我的谷歌搜索似乎没有提出任何东西)。
  • 我如何告诉我的同事从上游存储库中提取它?

阅读 373

收藏
2022-01-14

共2个答案

一尘不染

简单的 Git 2.0+ 解决方案:

Git 2.0 开始,行为变得更加简单

您可以配置 gitpush.default = current以使生活更轻松:

我添加了这个,所以现在我可以向上游推送一个新分支

$ git push -u

-u将跟踪同名的远程分支。现在使用此配置,您将自动猜测对 git push 的远程引用。来自git.config 文档

push.default

如果没有明确给出 refspec,定义 git push 应该采取的行动。

push.default = current- 推送当前分支以更新接收端的同名分支。适用于中央和非中央工作流程。

对我来说,这是对我日常 Git 工作流程的一个很好的简化。配置设置处理“通常”用例,您在本地添加分支并希望远程创建它。此外,我可以通过做git co remote_branch_name(而不是使用--set-upstream-to标志)轻松地从远程创建本地分支。

我知道这个问题和接受的答案相当陈旧,但行为已经改变,因此现在存在配置选项以使您的工作流程更简单。

要添加到全局 Git 配置,请在命令行上运行:

$ git config --global push.default current
2022-01-14
一尘不染

首先,您在本地创建分支:

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 为您克隆的远程设备提供的名称。然后,您的同事只需拉出该分支,它就会在本地自动创建。

但是请注意,正式的格式是:

git push <remote-name> <local-branch-name>:<remote-branch-name>

但是当你省略一个时,它假定两个分支名称是相同的。话虽如此,请注意,不要犯只指定:<remote-branch-name>(用冒号)的严重错误,否则远程分支将被删除!

为了让后续git pull知道该做什么,您可能想要使用:

git push --set-upstream <remote-name> <local-branch-name> 

如下所述,该--set-upstream选项设置上游分支:

对于每个最新或成功推送的分支,添加上游(跟踪)引用,由无参数 git-pull(1) 和其他命令使用。

2022-01-14