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

Eug*_*ene 8 git git-remote git-branch

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

$ 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
Run Code Online (Sandbox Code Playgroud)

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

2)我应该在本地设置什么/何地/如何在origin/dev默认情况下推入而不是origin/master

Aja*_*ati 12

更新:

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

如果它的存储库那么

git pull origin
Run Code Online (Sandbox Code Playgroud)

如果它的分支那么

git pull origin <yourRemoteBranchName>
Run Code Online (Sandbox Code Playgroud)

拉完后它会在你的机器上.现在你当前的分支是yourRemoteBranchName.


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

git checkout -b your_branch
Run Code Online (Sandbox Code Playgroud)

将其推送到远程服务器时,将自动创建远程分支.因此,当您准备好它时,您可以这样做:

git push <remote-name> <branch-name>
Run Code Online (Sandbox Code Playgroud)

<remote-name>通常在哪里origin,git为您克隆的远程提供的名称.然后你的同事就会拉出那个分支,它会在本地自动创建.

但请注意,正式格式为:

git push <remote-name> <local-branch-name>:<remote-branch-name>
Run Code Online (Sandbox Code Playgroud)

但是当你省略一个时,它假定两个分支名称是相同的.说完这个之后,请注意,不要仅仅指定:<remote-branch-name>(使用冒号),否则远程分支将被删除!

因此,后续人员git pull将知道该怎么做,您可能会想要使用:

git push -u <remote-name> <local-branch-name>
Run Code Online (Sandbox Code Playgroud)

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

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

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

git merge branchName
Run Code Online (Sandbox Code Playgroud)

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


Law*_*Lee 5

本地切换到dev分支,然后push到origin远程的dev分支:

git checkout dev
git push -u origin dev
Run Code Online (Sandbox Code Playgroud)

-uon 选项设置git push上游跟踪,以便当您位于 dev 分支时,git push和会自动执行与和git pull相同的操作。git push origin devgit pull origin dev


如果我误解了你的问题,并且你想将所有带有“dev...”的分支推送到原点上各自的分支,你可以对每个分支执行上述步骤,或者你可以将所有分支git push origin --all推送到原产地远程。所以在原点上,你会有,,等等。origin/devorigin/dev_3_feature


如果我双重误解了你的问题,并且你想将带有“dev...”的所有分支推送到单个远程分支中,那么我建议不要这样做。最好将所有开发分支合并/变基到一个分支,然后将其推送到原始分支。假设您想使用一个名为 的分支dev

git checkout dev
git merge dev_3_feature
git merge dev_second_feature
git push -u origin dev
Run Code Online (Sandbox Code Playgroud)

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

最后一点,您可能需要为未来的功能分支提供一些更具描述性的分支名称,因为这样的名称并dev_second_feature不能真正告诉您该功能是什么。