ChatGPT解决这个技术问题 Extra ChatGPT

如何将本地 Git 分支推送到远程的 master 分支?

我在我的本地仓库中有一个名为 develop 的分支,我想确保当我将它推送到原点时,它会与原点/主节点合并。目前,当我推送它时,它被添加到远程开发分支中。

我怎样才能做到这一点?

您是否有特殊原因不想将其在本地合并到 origin 中,然后将其推送到远程?
我认为@galador 意味着在本地合并到 master - 但这是一个有效的观点。如果它对于 origin 的 master 分支足够稳定,那么 肯定 它对于您的 master 分支足够稳定!
@Jefromi 假设您正在本地 master 中处理某些事情,并且您做出了一些尚未准备好推送的提交。然后事实证明你有紧急任务。您从远程 master 创建一个本地分支,工作并将您的更改推送回 master。也许这不是最好的方法,但这就是发生在我身上的事情,这就是我所做的。它按预期完美运行。好吧,我本来应该在单独的本地分公司工作,但是一直分公司很痛苦,而且为时已晚。
我正在将开发分支推送到 Heroku 上的非面向公众的测试应用程序,以了解事情在 Heroku 的环境中是如何工作的。绝对不想将我的代码合并到 master,但 Heroku 不会运行代码,除非它位于应用程序内的 master 上。这是具有合法用例的完全合理的请求!
在将本地工作分支推送到 heroku 测试服务器时,我一直使用它。

m
mipadi
$ git push origin develop:master

或者,更一般地说

$ git push <remote> <local branch name>:<remote branch to push into>

不要做“git push origin:master”,它可以删除你现有的远程分支
真的@MangirdasSkripka!如果您不想指定当前分支的名称,只需使用 git push origin head:master :)
好主意@FrancescRosàs,不过是 HEAD(大写字母)。
@Mipadi 如果我有修补许可,我可以移动这个吗
@NeerajSharma:我不知道修补许可是什么,或者你想移动什么。
T
Travis

正如人们在评论中提到的那样,您可能不想这样做……如果您知道自己在做什么,那么 mipadi 的答案是绝对正确的。

我会说:

git checkout master
git pull               # to update the state to the latest remote master state
git merge develop      # to bring changes to local master from your develop branch
git push origin master # push current HEAD to remote master branch


顺便提一下,他的请求是有道理的,我正在使用该案例将我的开发部署(推送)到 Heroku master
同样,恕我直言,此技术仅适用于高级 git 用户。并不是说它太难,它只需要人们了解他们在做什么以及为什么它会以它的方式工作。每个人都可以根据自己的喜好自由使用 git,但我认为遵循我建议的方法对于教育目的要好得多,尤其是对于 git 新手。清理“主题分支”是开始的方式,如果需要,您可以稍后优化您的工作流程。
这实际上是一件相当普遍的事情。主分支通常是您的部署分支。如果两个团队故意分散他们的部署,那么您很可能会使用精心挑选的本地分支将补丁推送到上游。现在您可能会争辩说应该将更改推送到上游的分支,然后从那里合并到 master,但是以另一种方式这样做当然不是那么奇怪,IMO。
+1 这是“构建”生产版本的最合乎逻辑的方式。
如果您不想与develop合并但将develop重新定位为master,您会怎么做?
M
Macdonald

您可以安装 git 工具 https://git-scm.com/downloads,它可以帮助将分支合并到 master。我在 RStudio 中创建了一个分支,对其进行了处理,并将更改推送到了 github。然后,当我想合并时,我打开了这个 git GUI 工具,导航到包含我的存储库的文件夹,然后将分支合并到 master。我打开 RStudio 检查更改是否发生,然后从 RStudio 推送到 github。


尽管大多数开发人员建议使用命令行来执行 git 操作。如果您想解释基于 gui 的工具,请添加一些 ss 以使流程清晰。
请添加更多详细信息以扩展您的答案,例如工作代码或文档引用。
@DeepakYadav,您好,安装 git GUI 工具 git-scm.com/downloads 后,单击“存储库”并导航到带有存储库的计算机上的本地文件夹。在 Git 应用程序中加载此位置后,它将向您显示那里的所有分支。然后单击“合并”,您可以选择是否要将 master 合并到分支,反之亦然。也有使用此 GUI 提交和推送的选项,或者如果您像我一样使用 RStudio,您可以在检查更改后决定推送 RStudio。
E
Eric Woodruff

您也可以通过这种方式隐式引用前一个分支:

git checkout mainline
git pull
git merge -
git push

b
bunbun

作为@Eugene 回答的扩展,另一个版本可以将代码从本地仓库推送到 master/develop 分支。

切换到分支'master':

$ git checkout master

从本地 repo 合并到 master:

$ git merge --no-ff FEATURE/<branch_Name>

推送到大师:

$ git push

A
Adam

按照以下步骤将本地 repo 推送到 Master 分支

$ git status