你如何创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 /,然后再将其推入。
这个链接帮助我推动我的本地分支(从另一个回购克隆)到我的远程回购: