2016-09-19 114 views
1

我有一個簡單的問題,但我在這裏找不到重複內容。在提交新的更改之前更正以前的提交

我承諾將(承諾1)更改爲wip分支並繼續開發。現在我想提交新的更改(承諾2),但我注意到承諾1有一個錯誤。

我如何保存我的變化(相對於提交2)無commiting他們,回去承諾1並解決它,然後帶回這些變化並執行承諾2

回答

1

從你的問題,我有一個要添加更多的變化的理解提交1.

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

爲此您應該使用git commit --amend。在此描述:

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

那麼你可以使用git stash apply

應用藏匿的變化,並承諾在變化提交-2

1

您可以使用git stash

通常情況下,當你一直在做項目的一部分,東西都在 一個混亂的狀態,你想切換分支的位元對 工作的東西其他。問題是,你不想做一個承諾完成一半的工作,以便以後可以回到這一點。該問題的 答案是git stash命令。

你應該做的:

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

或者:

  1. 藏你的工作狀態和修復承諾1commit --amend,或
  2. 剛剛提交你的改變然後自然秩序和rebase。這將給像

    commit1 -> commit2 -> commit1fix <HEAD 
    

    和運行rebase -i HEAD~3,你可以重新排序提交像這樣:

    pick aaaa commit1 
    fixup cccc commit1fix 
    pick bbbb commit2