如何解决因意外地提交到主分支而不是我的功能分支

时间:2017-04-20 22:15:05

标签: git

在本地,我忘了从主分支创建一个功能分支,然后将我的更改提交到主分支。

如何更正错误,以便从主分支中删除提交,并将其设置为新的功能分支?

感谢。

2 个答案:

答案 0 :(得分:3)

git checkout master
git checkout -b my-feature-branch
git checkout master
git reset --hard HEAD~1
git checkout my-feature-branch

说明:

  1. 首先,我们确保我们在master分支。
  2. 现在我们创建一个新的功能分支,带来最新的提交。
  3. 我们回到master分支。
  4. 我们将master分支重置为最后一个之前的提交。
  5. 我们回到功能部门继续处理它。

答案 1 :(得分:2)

让我们考虑一下情况

提交前

... -- A
       ^
       |
       master
提交后

... -- A -- B
            ^
            |
            master

要解决问题,您需要执行以下步骤:

方法1

  1. 重命名" master"分支到"功能"分支git branch -m feature
  2. ... -- A -- B
                ^
                |
                feature
    
    1. 重新创建"掌握"来自上一次提交git checkout -b master A
    2. ... -- A -- B
             ^    ^
             |    |
             |    feature
             |
             master
      

      方法2

      1. 使用git checkout -b feature
      2. 创建新分支
        ... -- A -- B
                    ^
                    |
                    feature *
                    master
        
        1. 使用git checkout master
        2. 返回主分支
          ... -- A -- B
                      ^
                      |
                      feature
                      master *
          
          1. 使用git reset --hard HEAD~1
          2. 重置母版中的更改
            ... -- A -- B
                   ^    ^
                   |    |
                   |    feature
                   |
                   master