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

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


当前回答

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

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)和其他命令。

其他回答

我通过将其添加到bash~/.profile中解决了这个问题:

函数gitb(){git checkout-b$1&&git push--设置上游原点$1;}

然后,为了启动一个新的本地+远程分支,我写下:

gitb功能/mynewbranch

这将创建分支并执行第一次推送,不仅是为了设置跟踪(以便以后git pull和git push在没有额外参数的情况下工作),而且实际上是为了确认目标回购中没有这样的分支。

首先在本地创建分支:

git checkout -b your_branch

然后远程创建分支:

git push --set-upstream origin your_branch

注意:这适用于git的最新版本:

$ git --version
git version 2.3.0

干杯

我只是想在以下时间添加:

git checkout -b {branchName}

创建一个新分支,它也会检出该分支/使其成为当前分支。如果出于某种原因,您只想捕捉一个分支,而不想将其作为当前分支,则可以使用以下命令:

git branch {branchName}

在第一个命令中,“checkout”使所述分支成为当前分支,“-b”表示:该分支还不存在,所以请为我创建。

我知道这个问题得到了很好的回答,但我只想列出创建一个新分支“myNewBranch”并推送到远程(在我的情况下是“源”)并设置跟踪所采取的步骤。将其视为“TL;DR”版本:)

# create new branch and checkout that branch
git checkout -b myNewBranch
# now push branch to remote 
git push origin myNewBranch
# set up the new branch to track remote branch from origin
git branch --set-upstream-to=origin/myNewBranch myNewBranch

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

git checkout -b newbranch

按正常方式提交任何更改。然后,将其向上推:

git push -u origin HEAD

这是一个快捷方式,可以将当前分支推送到原点上同名的分支并跟踪它,这样以后就不需要指定原点HEAD了。