你能解释一下如何将本地分支推送到特定的远程分支
$ 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
答案 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 push
和git pull
会自动执行与{{1}相同的操作}和git push origin dev
。
如果我误解了你的问题并想要将你的所有分支机构用“dev ...”推送到各自的分支机构,你可以为每个分支执行上述步骤,或者你可以{{1}将所有你的分支推送到原始远程。所以在原点上,你有git pull origin dev
,git push origin --all
等等。
如果我再次误解了你的问题并且你想把你的所有分支机构用“dev ...”推入一个远程分支,那么,我建议不要这样做。如果将所有dev分支合并/重新绑定到一个分支然后将其推送到origin,这可能是最好的。假设您要使用名为origin/dev
的一个分支:
origin/dev_3_feature
每次合并后,您可能必须解决合并冲突,因此请注意。
作为最后一点,您可能需要一些更具描述性的分支名称以用于将来的功能分支,因为像dev
这样的名称并不能真正告诉您该功能是什么。