如何正确地将多个合并还原为远程主控

Posted

技术标签:

【中文标题】如何正确地将多个合并还原为远程主控【英文标题】:How to correctly revert multiple merge to remote master 【发布时间】:2017-04-11 22:07:18 【问题描述】:

我有 5 个分支 master,branch-1,branch-2,branch-3 和 branch-4。

我对 branch-3 进行了一些更改并合并到 master 并再次执行了两次,现在我想回到所有 3 合并之前的阶段,我可以签出该提交并创建另一个包含数据的分支我多么需要它。

git checkout 1ba671a79a0cc57129768ce1ad0218e17841e4d9

然后

git checkout -b "experimental-branch"

我在实验分支中拥有我想要的阶段中的所有内容,但我想要在主分支中。我该怎么做?

我想将我的主人重置为这个提交“1ba671a79a0cc57129768ce1ad0218e17841e4d9”,之后有不需要的提交和合并。

【问题讨论】:

【参考方案1】:

如果你真的想将你的 master 分支重置为这个提交,那么只需使用:

git reset --hard 1ba671a7

这会将您的 master 分支重置为此提交。但请记住,这将改写这个分支的历史。这意味着它可能会给共享分支的任何其他人带来问题(我假设目前没有其他人在共享)。

要推送更新的master,您需要使用:

git push --force origin master

强制分支到存储库。

如果您尝试恢复公共共享分支上的提交,您确实应该考虑改用 git revert

【讨论】:

我的实验分支没有任何东西要提交,我需要用git commit -m 'all your contents' 再次提交吗? I have all contents in the stage ...这是什么意思?如果你没有做任何工作,为什么要将这个分支带回当前的master 我不想要我在那次提交和合并之后所做的更改我不想要那些。 所以你想将你的master 分支重置为这个提交,丢弃在那之后发生的一切,对吗? @PrafullaKumarSahu 我在上面给了你答案。

以上是关于如何正确地将多个合并还原为远程主控的主要内容,如果未能解决你的问题,请参考以下文章

CMake项目结构:如何正确地将库合并在一起并将它们包含在多个可执行文件中

如何设置服务器上的MongoDB让别的机子远程连接

ensp 怎么让cli合并一个

企业便携计算机,丢失被盗如何远程将设备还原为出厂默认设置删除所有数据

一般的电脑如何设置远程桌面登陆,需要啥条件。

什么叫远程控制?