我创建了一个本地分支。如何将其推送到远程服务器?

更新:我在这里为Git2.0写了一个更简单的答案。


当前回答

以下是你如何通过Egit在日食中做到这一点。

转到“Git Repository Exploring”视图,展开要创建分支的Git项目。在分支->本地..下。。选择要为其创建分支的分支(在我的例子中,我选择了master。如果您愿意,可以选择另一个分支)。。然后右键单击并单击“创建分支”选项。。并选择签出此项目选项,然后单击完成按钮。现在从项目浏览器中选择项目。。右键单击“团队”->“推送分支”。

将创建一个新的远程分支。你可以把分支的名称告诉你的同事,这样他们就可以把它取出来。

其他回答

首先,创建一个新的本地分支并签出:

git checkout -b <branch-name>

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

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

<remote name>通常是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)和其他命令。

简单的Git 2.0+解决方案:

从Git2.0开始,行为变得更加简单:

您可以使用push.default=current配置git,以使生活更轻松:

我添加了这个,所以现在我可以用

$ git push -u

-您将跟踪同名的远程分支。现在使用此配置,您将自动猜测gitpush的远程引用。从git.config文档中:

推送故障定义如果没有明确给定refspec,git push应该采取的操作。push.default=current-推送当前分支以使用接收端的名称相同。可在中央和非中央工作流中工作。

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

我知道这个问题和公认的答案都很陈旧,但行为已经改变,现在有了配置选项,可以简化您的工作流程。

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

$ git config --global push.default current

如果你想创建远程分支而不需要本地分支,你可以这样做:

git push origin HEAD:refs/heads/foo

它将您的HEAD推送到远程上不存在的分支foo。

以下是你如何通过Egit在日食中做到这一点。

转到“Git Repository Exploring”视图,展开要创建分支的Git项目。在分支->本地..下。。选择要为其创建分支的分支(在我的例子中,我选择了master。如果您愿意,可以选择另一个分支)。。然后右键单击并单击“创建分支”选项。。并选择签出此项目选项,然后单击完成按钮。现在从项目浏览器中选择项目。。右键单击“团队”->“推送分支”。

将创建一个新的远程分支。你可以把分支的名称告诉你的同事,这样他们就可以把它取出来。

我使用了两种方法来创建分支

如果您正在使用TortoiseGit,请执行以下步骤:-

1.使用TortoiseGit创建分支

右键单击您的项目>>TortoiseGit>>创建分支>>编写分支的名称并选择基本分支,然后按ok

2.推动分支

右键单击项目>>TortoiseGit>>推送>>单击确定

3.切换到新分支

右键单击您的项目>>TortoiseGit>>切换/签出>>选择新创建的分支并按ok

如果使用命令提示符,请执行以下步骤:-

1.使用命令提示符创建分支

$git签出-b new_branch_name

2.推动分支

$git推送原点new_branch_name

3.切换到新分支它已经切换为new_branch_name,否则您可以使用

$git签出new_branch_name