将git提交分成几个提交

Yog*_*rma 4 git

我在一段代码中修复了两个错误,它修改了常见文件.例如,错误修复1修改了文件A,B,C和错误修复2修改了B,C和D.我在一次提交中有所有更改.出于代码审查的目的,我需要将更改拆分为两个提交(实际上是两个分支).

我在想的是,从我现在的分支fix,我创建了两个分支,如git branch fix-1 fixgit branch fix-2 fix.两个分支都有所有变化.现在,在分支中fix-1,我想保留与修复1相关的更改,即文件A中的所有更改,以及文件B和C中的更改部分.是否可以在git中执行此操作?什么命令与此相关?

我知道git add,我可以进行交互式添加,我可以选择要添加的代码,而不仅仅是文件级别.我可以在这里做类似的事吗?

And*_*ndy 5

如果提交是您的最后一次提交,这是一个解决方案.

  1. 使用修复程序检查分支

    git checkout fix
    
    Run Code Online (Sandbox Code Playgroud)
  2. 重置回修复之前,但保留工作目录中的更改

    git reset HEAD^
    
    Run Code Online (Sandbox Code Playgroud)
  3. 为fix-1创建分支

    git checkout -b fix-1
    
    Run Code Online (Sandbox Code Playgroud)
  4. 添加/提交修复1修复

    git add -p
    git commit
    
    Run Code Online (Sandbox Code Playgroud)
  5. 存储剩余的更改

    git stash
    
    Run Code Online (Sandbox Code Playgroud)
  6. checkout/create branch for fix-2

    git checkout -b fix-1
    
    Run Code Online (Sandbox Code Playgroud)
  7. 摆脱你隐藏的变化

    git stash pop
    
    Run Code Online (Sandbox Code Playgroud)
  8. 提交/添加它们

    git commit -a
    
    Run Code Online (Sandbox Code Playgroud)