你如何创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
这里,
- -u:设置上游分支
- remote_name:git在创build存储库时默认将名称设置为“origin”。 但是,可以将其更改为不同的任意名称。
- local_branch_name:是要推送的本地分支的名称。
- 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 /,然后再将其推入。
这个链接帮助我推动我的本地分支(从另一个回购克隆)到我的远程回购: