乐闻世界logo
搜索文章和话题

Git 如何创建远程分支?

9 个月前提问
5 个月前修改
浏览次数45

5个答案

1
2
3
4
5

首先,创建一个新的本地分支并检查它:

shell
git checkout -b <branch-name>

当您将其推送到远程服务器时,会自动创建远程分支:

shell
git push <remote-name> <branch-name>

<remote-name>通常是origin,这是 git 为您克隆的远程服务器提供的名称。然后,您的同事可以简单地拉动该分支。

但请注意,形式上,格式为:

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

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


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

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

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

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

2024年6月29日 12:07 回复

首先,您必须在本地创建分支

shell
git checkout -b your_branch

之后,您可以在本地分支中工作,当您准备好共享分支时,推送它。下一个命令将分支推送到远程存储库原点并跟踪它

shell
git push -u origin your_branch

队友可以通过以下方式到达您的分支机构:

shell
git fetch git checkout origin/your_branch

您可以继续在分支中工作并在需要时推送,而无需向 git Push 传递参数(无参数 git Push 会将 master 推送到远程 master,将本地 your_branch 推送到远程 your_branch,等等...)

shell
git push

队友可以通过提交来推送到您的分支,然后显式推送

shell
# ... work ... git commit # ... work ... git commit git push origin HEAD:refs/heads/your_branch

或者跟踪分支以避免 git push 的参数

shell
git checkout --track -b your_branch origin/your_branch # ... work ... git commit # ... work ... git commit git push
2024年6月29日 12:07 回复

简单的 Git 2.0+ 解决方案:

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

您可以配置 git**push.default = current**让生活更轻松:

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

shell
$ git push -u

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

默认推送

定义在没有明确给出 refspec 的情况下 git push 应采取的操作。

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

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

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

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

shell
$ git config --global push.default current
2024年6月29日 12:07 回复

正如前面的答案中所说,

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

足以推动当地分支机构。

您的同事可以使用以下命令拉取所有远程分支(包括新分支):

shell
git remote update

然后,要在分支上进行更改,通常的流程是:

shell
git checkout -b <local-branch-name> <remote-name>/<remote-branch-name>
2024年6月29日 12:07 回复

基于当前分支在本地创建一个新分支:

shell
git checkout -b newbranch

像平常一样进行任何更改。然后,将其推向上游:

shell
git push -u origin HEAD

这是将当前分支推送到同名分支并跟踪它的快捷方式,以便您将来origin不需要指定。origin HEAD

2024年6月29日 12:07 回复

你的答案