我创建了一个本地分支,我想在上游“推” . Stack Overflow上有一个关于如何跟踪新创建的远程分支的类似问题 .
但是,我的工作流程略有不同 . First 我想创建一个本地分支,当我满意并且想要共享我的分支时,我只会将其推送到上游 .
-
我该怎么做? (我的谷歌搜索似乎没有提出任何东西) .
-
如何告诉我的同事从上游存储库中取出它?
UPDATE With Git 2.0 there is a simpler answer 我写的如下:https://stackoverflow.com/a/27185855/109305
17 回答
我知道这个问题得到了很好的回答,但只想列出我创建新分支“myNewBranch”并推送到远程(我的情况下为“origin”)并设置跟踪的步骤 . 考虑这个“TL; DR”版本:)
如前面的答案所述,
足以推动当地分公司 .
您的同事可以使用以下命令拉出所有远程分支(包括新分支):
然后,要在分支上进行更改,通常的流程:
首先,您必须在本地创建分支
之后,您可以在分支机构中本地工作,当您准备好共享分支时,推送它 . 下一个命令将分支推送到远程存储库源并跟踪它
队友可以通过以下方式联系您的分支机构:
您可以继续在分支中工作并随时随地推送而不将参数传递给git push(无参数git push会将master推送到远程master,your_branch本地到remote your_branch等等)
队友可以通过提交推送到您的分支,然后明确推送
或者跟踪分支以避免git push的参数
如果要从当前分支创建分支
你想要一个远程分支的分支,你可以试试
如果您完成了更改,则可以添加该文件 .
然后在本地进行提交
当你想推送到远程仓库时
一起将是
或者如果要从远程分支创建分支,请说 development
git checkout -b bug_fixes origin / development
您可以将分支推送到远程仓库
任何时候你想从任何其他分支更新你的分支说 master .
git pull origin master
.在github上推分支:
如果您想在分支机构中提交某些内容,请务必进入您的分支机构 .
您可以使用以下命令查看所有分支:
哪个会显示:
为您的分支添加新的远程:
将提交中的更改推送到您的分支:
更新官方存储库中的原始分支时更新您的分支:
然后,您需要申请合并更改,如果您的分支派生自您需要做的开发:
删除本地文件系统上的分支:
要强制删除文件系统上的本地分支:
删除github上的分支:
Here All Information
Other Existing project
根据当前分支在本地创建新分支:
像往常一样提交任何更改 . 然后,将其推向上游:
这是一个快捷方式,可以将当前分支推送到
origin
上的同名分支并跟踪它,以便将来不需要指定origin HEAD
.如果你想在没有本地的情况下创建远程分支,你可以这样做:
它将您的HEAD推送到遥控器上不存在的分支foo .
Simple Git 2.0解决方案:
截至 Git 2.0 the behaviour has become simpler :
您可以使用 push.default = current 配置git以简化生活:
我添加了这个,所以现在我可以在上游推送一个新的分支
-u
将跟踪同名的远程分支 . 不使用此配置,您将自动猜测对git push的远程引用 . 从git.config documentation:对我来说,这是我日常Git工作流程的一个很好的简化 . 配置设置负责'usual'用例,您可以在本地添加分支并希望远程创建分支 . 此外,我可以通过执行
git co remote_branch_name
(而不是使用--set-upstream-to
标志)轻松地从遥控器创建本地分支 .我知道这个问题并且接受的答案相当陈旧,但行为已经改变,因此现在存在配置选项以使您的工作流更简单 .
要添加到全局Git配置,请在命令行上运行:
最简单的解决方案...... Drumm Roll ...... git version 2.10.1 (Apple Git-78)
注: - 您刚刚在本地环境中创建的分支和远程分支你想要推送的不存在的分支, must have the same name .
首先,在本地创建分支:
将其推送到远程服务器时,将自动创建远程分支 . 因此,当您准备好它时,您可以这样做:
其中
<remote-name>
通常是origin
,git为您克隆的远程提供的名称 . 然后你的同事就会拉出那个分支,它会在本地自动创建 .但请注意,正式格式为:
但是当你省略一个时,它假设两个分支名称是相同的 . 话虽如此,作为 caution 的一句话,不要犯下仅指定
:<remote-branch-name>
(带冒号)的严重错误,否则将删除远程分支!因此,后续
git pull
将知道该怎么做,你可能会想要使用:如下所述,
--set-upstream
选项设置上游分支:如何通过源树
git push -u <remote-name> <branch-name>
doesn 't work if the newly created branch isn' t从同一个仓库中产生,即如果您还没有使用git checkout -b new_branch
创建新分支,那么这将不起作用 .例如,我在本地克隆了两个不同的存储库,我不得不将repo2 / branch1复制到repo1 /然后再推送它 .
This链接帮助我将我的本地分支(从另一个仓库克隆)推送到我的远程仓库:
首先,您在本地创建分支:
然后远程创建分支:
注意:这适用于git的最新版本:
干杯!
这是你如何通过Egit在eclipse中完成的 .
1)转到“Git Repository Exploring”视图并解释要为其创建分支的git项目 . 在Brances - > Local ..下选择要为其创建分支的分支(在我的情况下,我选择了master ..如果您愿意,可以选择另一个分支)..然后右键单击并单击Create Branch选项..并选择结帐此项目选项,然后单击完成按钮 .
2)现在从项目资源管理器中选择项目..右键单击然后团队 - >推送分支 .
将创建一个新的远程分支 . 您可以将分支的名称提供给您的同事,以便他们可以将其拉出来 .
现在使用git,当你在正确的分支中时,你可以输入
git push --set-upstream origin <remote-branch-name
>和git为你创建原始分支 .
只想添加:
创建一个新分支,它还会检出该分支/使其成为当前分支 . 如果出于某种原因,您想要做的就是截取分支但不使其成为当前分支,那么您将使用以下命令:
在第一个命令中,“checkout”使所述分支成为当前分支,“ - b”表示:该分支尚不存在,所以请为我做 .
从现有分支创建本地分支(可以是master / develop / any-other-branch) .
将其推到远程
这里,
-u:设置上游分支
remote_name:git在创建存储库时默认将名称设置为"origin" . 但是,这可以更改为不同的任意名称 .
local_branch_name:是要推送的本地分支的名称 .
remote_branch_name:是我们要在远程创建的远程分支的名称 .
如果我们删除本地和远程分支名称,它将具有该格式
这会将本地分支推送到远程并与本地分支branch_name同名 . 本地分支也将跟踪远程分支 .