git,如何将本地分支推入特定的远程

时间:2016-08-24 16:22:35

标签: git git-branch git-remote

你能解释一下如何将本地分支推送到特定的远程分支

$ git branch -vv 
dev 4d46c96 [origin/dev] Merge branch '1783' into dev
dev_3_feature 226b914 second commit in dev_3_feature
dev_second_feature 6b5f10f second commit in dev_2_feature
master baf5fc0 [origin/master: ahead 1] master feature
* myFeature da5cc64 second commit in dev_1_feature
test 334cf7e commiting my super changes locally

1)我希望我的DEV功能被推入origin/dev并留在那里作为分支机构,我该怎么做?

2)我在本地设置的内容/位置/方式默认情况下推送到origin/dev而不是origin/master

2 个答案:

答案 0 :(得分:9)

更新:

因此,通常在使用Remote时,首先需要拉出存储库或分支。

如果它的存储库那么

git pull origin

如果它的分支那么

git pull origin <yourRemoteBranchName>
拉出它之后,它将出现在你的机器上。现在您当前的分支是yourRemoteBranchName

现在,您拥有Remote分支,然后您可以从该拉动远程分支创建本地分支。它将从您当前的Remote分支创建一个新的本地分支。

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> <local-branch-name>

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

  

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

如果要直接与上游分支合并,

git merge branchName

您可以参考此文档:https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging。它有很好的例子。

答案 1 :(得分:2)

在本地切换到dev分支,然后推送到原始远程的dev分支:

git checkout dev
git push -u origin dev

-u上的git push选项设置了上游跟踪,这样当您在开发分支上时,git pushgit pull会自动执行与{{1}相同的操作}和git push origin dev

如果我误解了你的问题并想要将你的所有分支机构用“dev ...”推送到各自的分支机构,你可以为每个分支执行上述步骤,或者你可以{{1}将所有你的分支推送到原始远程。所以在原点上,你有git pull origin devgit push origin --all等等。

如果我再次误解了你的问题并且你想把你的所有分支机构用“dev ...”推入一个远程分支,那么,我建议不要这样做。如果将所有dev分支合并/重新绑定到一个分支然后将其推送到origin,这可能是最好的。假设您要使用名为origin/dev的一个分支:

origin/dev_3_feature

每次合并后,您可能必须解决合并冲突,因此请注意。

作为最后一点,您可能需要一些更具描述性的分支名称以用于将来的功能分支,因为像dev这样的名称并不能真正告诉您该功能是什么。

相关问题