Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在git中回滚或重新创建主分支?_Git_Workflow_Branch - Fatal编程技术网

在git中回滚或重新创建主分支?

在git中回滚或重新创建主分支?,git,workflow,branch,Git,Workflow,Branch,我有一个git repo,它有几个分支——有主分支,这是我们稳定的工作版本,还有一个开发/登台分支,我们正在其中做新的工作 不幸的是,在没有考虑的情况下,我似乎有点过于热衷于重定基址,并且在一段时间内将所有的暂存代码拉到了Master中(大约80次提交…是的,我知道,愚蠢、笨拙、糟糕的代码管理者等等) 正因为如此,我很难在当前版本的应用程序(rails应用程序)上做一些小的修改,并在不推出我们还不想发布的“阶段性”新功能的情况下推出这些更改 我想知道是否有可能做到以下几点: 确定最后一次“中继”

我有一个git repo,它有几个分支——有主分支,这是我们稳定的工作版本,还有一个开发/登台分支,我们正在其中做新的工作

不幸的是,在没有考虑的情况下,我似乎有点过于热衷于重定基址,并且在一段时间内将所有的暂存代码拉到了Master中(大约80次提交…是的,我知道,愚蠢、笨拙、糟糕的代码管理者等等)

正因为如此,我很难在当前版本的应用程序(rails应用程序)上做一些小的修改,并在不推出我们还不想发布的“阶段性”新功能的情况下推出这些更改

我想知道是否有可能做到以下几点:

  • 确定最后一次“中继”提交
  • 从该点开始执行所有提交,并将它们移动到单独的分支中,或多或少地回滚更改
  • 开始像使用树枝一样使用树枝
  • 不幸的是,尽管如此,我仍然在不断地学习git,所以我有点困惑到底应该在这里做什么

    顺便说一句,提交已经被推到远程,但我不介意用——强制重新推,我是唯一推远程的人


    谢谢

    您是否已将提交推送到远程存储库?如果没有,您可以简单地使用git reset(请确保在之前阅读手册页,reset可能会很危险且令人困惑)

    将有发布问题(意味着您必须:

    • 强制将新主机推到遥控器上
    • 与已经从该遥控器拔出的任何人通信,以便他们将其主机重置为遥控器 )
    如果您的情况是:

    m1-m2-m3-m4-s1-s2-s3-s4 (master,stage)
    
    m1-m2-m3-m4-s1-s2-s3-s4-m5-m6 (master)
                           \
                            -s5-s6 (stage)
    
    也就是说,如果您当前的主机实际上也是当前阶段的分支,则需要进行简单的重置(正如knittl在中提到的)

    但如果您的情况是:

    m1-m2-m3-m4-s1-s2-s3-s4 (master,stage)
    
    m1-m2-m3-m4-s1-s2-s3-s4-m5-m6 (master)
                           \
                            -s5-s6 (stage)
    
    如:“我已经将舞台融入大师,然后继续在大师身上工作!”
    ,则一个顺序如下:

    git checkout master
    git reset --HARD m4
    git rebase --onto master s4 m6
    
    您将获得:

    m1-m2-m3-m4-m5'-m6' (master)
               \
                -s1-s2-s3-s4-s5-s6 (stage)
    

    很抱歉,我应该补充一点-这些提交已被推到远程,但我不介意再次强制推它们,我是唯一一个推到远程的人。好的,在这种情况下,请确保其他人也删除提交谢谢详细的回答,你和knittl的回答都非常有用。。。现在我只需要惩罚自己把工作流程搞砸了:P