在提交新更改之前更正先前的提交

时间:2016-09-19 10:34:15

标签: git

我有一个简单的问题,但我在这里找不到副本。

我将更改(commit 1)更改为wip分支,并继续进行开发。现在我想提交新的更改(commit 2),但我注意到 commit 1 有错误。

如何保存我的更改(相对于 commit 2 )而不提交它们,返回 commit 1 并修复它,然后恢复这些更改并执行< em> commit 2 ?

3 个答案:

答案 0 :(得分:1)

您可以使用git stash

  

通常情况下,当你在项目的一部分工作时,事情就会发生   一个混乱的状态,你想切换分支一点点工作   别的。问题是,你不想做提交   半完成的工作只是为了你以后可以回到这一点。该   这个问题的答案是git stash命令。

你应该做什么:

git stash
<checkout other branch>
<commit changes>
<checkout first branch>
git stash pop

答案 1 :(得分:1)

或者:

  1. 隐藏您的工作状态并使用commit --amend
  2. 修复 commit 1
  3. 之后只提交自然顺序和变基的变化。这将提供类似

    的内容
    commit1 -> commit2 -> commit1fix <HEAD
    

    并运行rebase -i HEAD~3,您可以重新排序提交,如下所示:

    pick aaaa commit1
    fixup cccc commit1fix
    pick bbbb commit2
    

答案 2 :(得分:1)

根据您的问题,我了解您要为提交1添加更多更改。

git stash您为commit-2所做的更改然后修改先前的提交。

为此你应该使用git commit --amend。这里描述:

https://www.atlassian.com/git/tutorials/rewriting-history/

然后,您可以使用git stash apply

应用隐藏的更改

并在commit -2

中提交更改