git,如何将本地分支推送到特定的远程
git, How to push local branch into the specific 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
我希望将我的 DEV
功能推入 origin/dev
并作为分支保留在那里,我该怎么做?
What/where/how 我应该在本地设置默认推入 origin/dev
而不是 origin/master
吗?
更新:
所以,一般在使用 Remote 时,首先需要拉取仓库或分支。
如果它的存储库那么
git pull origin
如果它的分支那么
git pull origin <yourRemoteBranchName>
拉取之后,它就会出现在你的机器上。现在您当前的分支是 yourRemoteBranchName
.
如果您是新手,想知道“起源”是什么,那么运行命令git remote -v
。它在某种意义上是 github 存储库的别名,因此您可以记住它。它可以是原产地,也可以是您选择的任何东西。
现在,你有了上面的远程分支,然后你可以从那个拉取的远程分支创建你的本地分支。它将从您当前的远程分支创建一个新的本地分支。
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
选项设置了一个上游分支:
For every branch that is up to date or
successfully pushed, add upstream
(tracking) reference, used by
argument-less git-pull(1) and other
commands.
如果想直接与上游分支合并,
git merge branchName
您可以参考此文档:https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging。它有很好的例子。
本地切换到dev分支,然后推送到origin远程的dev分支:
git checkout dev
git push -u origin dev
git push
上的 -u
选项设置上游跟踪,这样当您在开发分支上时,git push
和 git pull
会自动执行与 git push origin dev
和 git pull origin dev
.
如果我误解了你的问题,并且你想将所有带有 "dev..." 的分支推送到它们各自的原始分支,你可以对每个分支执行上述步骤,或者你可以执行 git push origin --all
将您的分支 所有 推送到原始远程。所以在 origin 上,你会有 origin/dev
、origin/dev_3_feature
等
如果我双重误解了你的问题,而你想将所有带有 "dev..." 的分支推送到一个远程分支中,那么我建议你不要这样做。如果您 merge/rebase 将所有开发分支合并为一个分支,然后将其推送到原点,那可能是最好的。假设您想使用一个名为 dev
:
的分支
git checkout dev
git merge dev_3_feature
git merge dev_second_feature
git push -u origin dev
每次合并后,您可能必须解决合并冲突,因此请注意。
最后一点,您可能需要一些更具描述性的分支名称用于未来的功能分支,因为像 dev_second_feature
这样的名称并不能真正告诉您功能是什么。
您能解释一下如何将本地分支推送到特定的远程分支吗?
$ 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
我希望将我的
DEV
功能推入origin/dev
并作为分支保留在那里,我该怎么做?What/where/how 我应该在本地设置默认推入
origin/dev
而不是origin/master
吗?
更新:
所以,一般在使用 Remote 时,首先需要拉取仓库或分支。
如果它的存储库那么
git pull origin
如果它的分支那么
git pull origin <yourRemoteBranchName>
拉取之后,它就会出现在你的机器上。现在您当前的分支是 yourRemoteBranchName
.
如果您是新手,想知道“起源”是什么,那么运行命令git remote -v
。它在某种意义上是 github 存储库的别名,因此您可以记住它。它可以是原产地,也可以是您选择的任何东西。
现在,你有了上面的远程分支,然后你可以从那个拉取的远程分支创建你的本地分支。它将从您当前的远程分支创建一个新的本地分支。
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
选项设置了一个上游分支:
For every branch that is up to date or successfully pushed, add upstream (tracking) reference, used by argument-less git-pull(1) and other commands.
如果想直接与上游分支合并,
git merge branchName
您可以参考此文档:https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging。它有很好的例子。
本地切换到dev分支,然后推送到origin远程的dev分支:
git checkout dev
git push -u origin dev
git push
上的 -u
选项设置上游跟踪,这样当您在开发分支上时,git push
和 git pull
会自动执行与 git push origin dev
和 git pull origin dev
.
如果我误解了你的问题,并且你想将所有带有 "dev..." 的分支推送到它们各自的原始分支,你可以对每个分支执行上述步骤,或者你可以执行 git push origin --all
将您的分支 所有 推送到原始远程。所以在 origin 上,你会有 origin/dev
、origin/dev_3_feature
等
如果我双重误解了你的问题,而你想将所有带有 "dev..." 的分支推送到一个远程分支中,那么我建议你不要这样做。如果您 merge/rebase 将所有开发分支合并为一个分支,然后将其推送到原点,那可能是最好的。假设您想使用一个名为 dev
:
git checkout dev
git merge dev_3_feature
git merge dev_second_feature
git push -u origin dev
每次合并后,您可能必须解决合并冲突,因此请注意。
最后一点,您可能需要一些更具描述性的分支名称用于未来的功能分支,因为像 dev_second_feature
这样的名称并不能真正告诉您功能是什么。