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

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


当前回答

如果要从当前分支创建分支

git checkout -b {your_local_branch_name}

如果您想要远程分支的分支,可以尝试

git checkout -b {your_local_branch_name} origin/<remote_branch_name>

如果完成了更改,则可以添加文件。

git add -A or git add <each_file_names>

然后在本地提交

git commit -m 'your commit message'

当您想推送到远程回购时

git push -u origin <your_local_branch_name>

所有人都将

git checkout -b bug_fixes 

或如果要从远程分支创建本地分支bug_fixes,请说development

git checkout -b bug_fixes origin/development

您可以通过

git push -u origin bug_fixes

任何时候你想从任何其他分支更新你的分支,比如master,

git pull origin master

其他回答

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

git checkout -b {branchName}

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

git branch {branchName}

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

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

git checkout -b your_branch

之后,您可以在分支中本地工作,当您准备好共享该分支时,将其推送

git push -u origin your_branch

队友可以通过以下方式到达你的分支:

git fetch
git checkout origin/your_branch

您可以继续在分支中工作,并随时进行推送,而无需将参数传递给gitpush(无参数gitpush会将主节点推送到远程主节点,将您的本地分支推送到远程您的分支,等等)

git push

团队成员可以通过执行提交推送到您的分支,然后显式推送

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

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

git checkout --track -b your_branch origin/your_branch
... work ...
git commit
... work ...
git commit
git push

如前面的回答中所述,

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

足以推动本地分支。

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

git remote update

然后,要对分支进行更改,通常的流程如下:

git checkout -b <local-branch-name> <remote-name>/<remote-branch-name>

如果已使用--single branch克隆当前分支,请使用此命令从当前分支创建新分支:

git checkout -b <new-branch-name>
git push -u origin <new-branch-name>
git remote set-branches origin --add <new-branch-name>
git fetch

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

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

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