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

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


当前回答

简单的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,当您在正确的分支中时,您只需键入

git push—设置上游起点<远程分支名称>

git为您创建原始分支。

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

git push origin HEAD:refs/heads/foo

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

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

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

git push --set-upstream origin mobile-test

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

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 checkout -b {branchName}

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

git branch {branchName}

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