你如何创build一个远程Git分支?

我创build了一个本地分支,我想“推”上游。 关于如何跟踪新创build的远程分支,Stack Overflow存在类似的问题。

但是,我的工作stream程略有不同。 首先,我想创build一个本地分支,当我满意并且想分享我的分支时,我只会将其推向上游。

  • 我该怎么做? (我的谷歌search似乎没有拿出任何东西)。
  • 我怎么会告诉我的同事把它从上游的仓库里拿出来呢?

更新与Git 2.0有一个更简单的答案,我已经写在下面: https : //stackoverflow.com/a/27185855/109305

首先,你在本地创build你的分支:

 git checkout -b <branch-name> # Create a new branch and check it out 

远程分支在您将其推送到远程服务器时自动创build。 所以,当你准备好了,你可以做:

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

其中<remote-name>通常是origin ,git给你从远程克隆的名称。 那么你的同事就可以把这个分支拉出来,并在本地自动创build。

不过请注意,格式是:

 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 set --set-upstream选项设置上游分支:

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

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

 git checkout -b your_branch 

之后,您可以在分支机构就地工作,当您准备好分享分支机构时,可以按下它。 下一个命令将分支推送到远程存储库原点并进行跟踪

 git push -u origin your_branch 

队友可以通过以下方式联系你的分支:

 git fetch git checkout origin/your_branch 

你可以继续在分支中工作,只要你想要,而不需要传递参数给git push(无争议的git push会把主机推到远程主机,your_branch本地到远程your_branch等等)

 git push 

队友可以通过提交来推送到你的分支,然后明确推送

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

或跟踪分支,以避免参数混帐推

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

简单的Git 2.0+解决scheme:

Git 2.0开始,行为变得更简单了

你可以用push.default = current来configurationgit使生活更轻松:

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

 $ git push -u 

-u将跟踪同名远程分支。 没有这个configuration,你会自动猜测对git push的远程引用。 从git.config文档 :

push.default

定义如果没有明确给出refspec,git push应该采取的行动。

push.default = current – 推送当前分支来更新接收端同名的分支。 适用于中央和非中央工作stream程。

对我而言,这是对我日常的Git工作stream程的一个很好的简化。 configuration设置将在本地添加分支并希望远程创build的情况下处理“常规”用例。 此外,我可以通过只做git co remote_branch_name (而不是使用--set-upstream-to标志)轻松地创build本地分支。

我知道这个问题,接受的答案是相当老,但行为已经改变,所以现在configuration选项存在,使您的工作stream程更简单。

要添加到您的全局Gitconfiguration,请在命令行上运行以下命令:

 $ git config --global push.default current 

如前面的答复所述,

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

足以推动当地的分支机构。

你的同事可以用下面的命令把所有远程分支(包括新分支)

 git remote update 

然后,要在分支上进行更改,通常的stream程是:

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

根据当前分支在本地创build一个新分支:

 git checkout -b newbranch 

像平常一样提交任何更改。 然后,向上推:

 git push -u origin HEAD 

这是一个快捷方式将当前分支推送到相同名称的分支上并进行跟踪,以便将来不需要指定origin HEAD

如果你想实际上创build远程分支而没有本地分支,你可以这样做:

 git push origin HEAD:refs/heads/foo 

它推动什么是你的头到远程分支不存在的分支。

首先你在本地创build分支:

 git checkout -b your_branch 

然后远程创build分支:

 git push --set-upstream origin your_branch 

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

 $ git --version git version 2.3.0 

干杯!

如果你想从当前分支创build一个分支

 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 

或者如果你想从远程分支创build一个分支,就说开发

git checkout -b bug_fixes起源/ 发展

你可以推送到分支远程回购

 git push -u origin **bug_fixes** 

任何时候你想从任何其他分支更新你的分支说主人

git pull origin master

在本地机器上创build分支并切换到这个分支:

 $ git checkout -b [name_of_your_new_branch] 

在github上推分支:

 $ git push origin [name_of_your_new_branch] 

当你想在你的分支中提交某些东西时,一定要在你的分支中。

你可以看到使用下面的所有分支:

 $ git branch 

哪个会显示:

 * approval_messages master master_clean 

为您的分支添加一个新的远程:

 $ git remote add [name_of_your_remote] 

将您的提交更改推送到您的分支:

 $ git push origin [name_of_your_remote] 

当官方仓库的原始分支已经更新时更新你的分支:

 $ git fetch [name_of_your_remote] 

那么你需要申请合并更改,如果你的分支是从发展派生你需要做的:

 $ git merge [name_of_your_remote]/develop 

删除本地文件系统上的分支:

 $ git branch -d [name_of_your_new_branch] 

强制删除文件系统上的本地分支:

 $ git branch -D [name_of_your_new_branch] 

删除github上的分支:

 $ git push origin :[name_of_your_new_branch] 

这里所有的信息

其他现有项目

最简单的解决scheme…鼓卷。 git版本2.10.1(Apple Git-78)

 1) git checkout -b localBranchNameThatDoesNotExistInRemote 2) Do your changes , and go a git commit 3) git push origin localBranchNameThatDoesNotExistInRemote --force 

注意 – 您当前在本地的早午餐,以及您尝试推送的远程不存在的分支必须具有相同的名称

现在用git,只要input正确的分支就可以了

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

和git为你创build原始分支。

我知道这个问题很好回答,但只是想列出我创build一个新的分支“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 {branchName} 

创build一个新的分支,它也检查出该分支/使之成为你当前的分支。 如果出于某种原因,所有你想要做的就是跳出一个分支,但不把它作为你当前的分支,那么你可以使用下面的命令:

 git branch {branchName} 

在第一个命令中,“checkout”使得所述分支成为你当前的分支,而“-b”的意思是:这个分支还不存在,所以把它给我。

从现有分支创build本地分支(可以是master / develop / any-other-branch)。

git checkout -b branch_name

推这到远程

git push -u remote_name local_branch_name:remote_branch_name

这里,

  1. -u:设置上游分支
  2. remote_name:git在创build存储库时默认将名称设置为“origin”。 但是,可以将其更改为不同的任意名称。
  3. local_branch_name:是要推送的本地分支的名称。
  4. remote_branch_name:是我们希望在远程创build的远程分支的名称。

如果我们删除本地和远程分支名称,它将具有格式

git push -u remote_name branch_name

这会将本地分支推送到远程,并使用与本地分支branch_name相同的名称。 本地分支也将跟踪远程分支。

如何通过源代码树

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

这里是你如何通过Egit在蚀。

1)进入“Git Repository Exploring”视图,并解释你想创build分支的git项目。 在Brances – > Local下select你想创build分支的分支(在我的情况下,我select了主分支,如果你愿意的话可以select其他的分支)。然后右键点击Create Branch选项。并select结帐该项目选项,然后单击完成button。

2)现在从项目资源pipe理器中select项目..右键单击然后团队 – >推分支。

一个新的远程分支将被创build。 你可以把分支的名字给你的同事,让他们可以把它拉出来。

git push -u <remote-name> <branch-name>不起作用,如果新创build的分支不是从同一个回购产生的,也就是说,如果你还没有使用git checkout -b new_branch创build新的分支,那么这是行不通的。

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

这个链接帮助我推动我的本地分支(从另一个回购克隆)到我的远程回购: