Git生产环境和主分支不同

3

我通常在我的主分支上工作,并推送到生产环境。我不小心在生产分支上工作并部署了应用程序。现在,我的生产环境有最新版本,而主分支有旧版本。

我该怎么做才能将主分支文件更新为与生产环境相同的版本?需要发出什么命令?

我以后会小心,只在主分支上工作。谢谢。

2个回答

3

将您当前的分支更改为master并运行

git merge production

或者

git rebase production

有关差异,请参见合并 vs 变基


第二个例子是不正确的。Rebase 的工作方式与合并相反。您需要切换到生产分支并运行 git rebase master。无论如何,在这种情况下不建议使用 rebase,因为他想要在两个分支上使用相同的提交(并且很可能已经将生产分支推送到远程)。在这里使用合并更加合适。 - Jimmy
如果我在生产分支上运行 git rebase master,会得到 "当前分支 production 已经是最新的"。当我在主分支上运行 git rebase production 时,它会快进。 "首先,倒回头来重放你的工作... 主分支已经被快进到了 production。" - Chandra Patni
我使用了第一个示例,现在是相同的。但是当我运行 git status 时,它说 Your branch is ahead of 'origin/master' by 5 commits.。我该如何解决这个问题? - Victor
@Victor - 这是告诉你,你的本地分支有未推送到远程分支的更改。了解更多关于远程和分支的信息:http://progit.org/ - Jimmy
如果你的主分支领先于生产分支,那么这是有道理的。但在这种情况下,情况恰恰相反。他不小心在生产环境中进行了应该先在主分支上进行的更改。 - Jimmy

1
如果它还没有被拉到远程或者远程可以覆盖它,我会从生产环境挑选出新的提交并合并到主分支,然后通过交互式变基删除生产环境中的提交,并进行常规的重定位合并周期来更新主分支从而更新生产环境。
请访问progit.org查看每个步骤的确切语法,并小心操作。Git非常强大,所以你可以修复任何错误,但也可能把情况搞得很糟糕。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接