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

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


当前回答

如何通过源树进行操作

 1: Open SourceTree, click on Repository -> Checkout
 2: Click on Create New Branch
 3: Select the branch where you want to get code for new branch 
 4: Give your branch name
 5: Push the branch  (by click on Push-button)

其他回答

我用这个,它很方便:

git config --global alias.mkdir '!git checkout -b $1; git status; git push -u origin $1; exit;'

用法:git mkdir NEW_BRANCH

你甚至不需要git状态;也许,我只是想确保一切顺利。。。

您可以通过一个命令同时拥有LOCAL和REMOTE分支。

如果新创建的分支不是从同一个repo派生的,即如果您没有使用gitcheckout-b newbranch创建新分支,则gitpush-u<remotename><branch name>不起作用。

例如,我在本地克隆了两个不同的存储库,我必须将repo2/branch1复制到repo1/,然后再将其推送。

此链接帮助我将本地分支(从另一个回购中克隆)推送到远程回购:

最简单的解决方案。。。鼓卷。。。git版本2.10.1(Apple git-78)

1) git checkout -b localBranchNameThatDoesNotExistInRemote

2) Do your changes, and do a git commit 

3) git push origin localBranchNameThatDoesNotExistInRemote --force

注意:您刚刚在本地环境中创建的分支和您尝试推送的远程非现有分支必须具有相同的名称。

这里有一个例子,我只有两个分支首先是本地的:起源和移动测试。

直到我在命令行中使用它来实际显示远程分支中更新的文件时,我才开始工作。

git push --set-upstream origin mobile-test

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

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