git - 你如何创建一个远程Git分支呢?

  显示原文与译文双语对照的内容

我创建了一个本地分支,我想将它的添加到上游。 在堆栈溢出上有一个类似的问题,如何跟踪新创建的远程分支。

但是,我的工作流稍微不同。 首先我想创建一个本地分支,上游,我只会把它当我满足,想要分享我的枝上。

  • 我该怎么做? ( 我的谷歌搜索似乎没有发现什么) 。
  • 我如何告诉我的同事从上游仓库拉它?

git 2.0更新,还有一个更简单的办法我写了如下: http://stackoverflow.com 27185855/109305

时间:

首先,你在本地创建分支:


git checkout -b your_branch

当你将远程分支推送到远程服务器时自动创建远程分支。 因此,当你觉得准备好了,你就可以执行以下操作:


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 -u <remote-name> <branch-name>

如下面所述,-u 选项设置一个上游分支:

对于最新或者已经成功推送的每个分支,添加上游( 跟踪) 引用,由 argument-less git-pull(1) 和其他命令使用。

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


git checkout -b your_branch

之后,你可以在分支中本地工作,当你准备共享分支时,将它的推送到。 下一个命令将分支推送到远程存储库原点并跟踪它


git push -u origin your_branch

通过执行以下操作,队友可以访问你的分支:


git fetch
git checkout origin/your_branch

你可以在分支中继续工作,只要你愿意而不向 git push 传递参数( argumentless git push 将把主控形状推送到远程主机,your_branch本地到远程 your_branch,等等 。)

 
git push

 

通过执行提交并显式推送,队友可以向你的分支推送


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

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


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>

Git 2.0行为变得更简单的 :

你可以配置与 git push.default = current 让生活更轻松:

我添加了这一点,现在我可以在上游添加一个新分支


$ git push -u

-u 将跟踪同名的远程分支。 没有这里配置,你将auto-guess远程引用到 git push 。 从 git.config 文档列表中:

push.default

定义了行动 git push 应该如果没有显式地给出 refspec 。

push.default = current - 按当前分支更新接收端具有相同名称的分支。 在中央和non-central工作流程中工作。

对于我来说,这是对日常Git工作流的一个很好的简化。 配置设置负责'常用'用例,在这里你可以在本地添加一个分支并想远程创建它。 同样,我只需做 git co remote_branch_name ( 与使用 --set-upstream-to 标志相反) 就可以轻松地从远程创建本地分支。

我知道这个问题和接受的答案相当旧,但是行为已经改变,所以现在的配置选项使得你的工作流程更加简单。

要添加到你的全局Git配置,在 命令行 上运行它:


$ git config --global push.default current

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


git checkout -b newbranch

像往常一样提交任何更改。 然后,将它的推入上游:


git push -u origin HEAD

这是一个快捷方式,将当前分支推送到 origin 上相同名称的分支并跟踪它,这样你就不需要在以后指定 origin HEAD

现在使用 git,你可以在正确的分支中输入

git push --set-upstream origin <remote-branch-name >

和git创建原始分支。

我知道这个问题得到了很好的回答,但是只是想列出创建一个新分支"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 push -u <remote-name> <branch-name> 如果新创建的分支不是从同一个仓库派生的,则不起作用,如果你没有使用 git checkout -b new_branch ,这将不起作用。

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

这里链接帮助我将本地分支( 从另一个仓库克隆) 推送到远程存储库:

我只是想补充一下:


git checkout -b {branchName}

创建一个新分支,它也会检查分支/使它的成为当前分支。 如果出于某种原因,你要做的就是关掉但不是你当前的分支,一个分支,那么你将使用以下命令:


git branch {branchName}

"结帐"使在第一个命令说,分支你当前的分支,"-b"意味着: 这里分支尚不存在,请为我制作。

...