2015-10-12 70 views
0

我的項目有一個分支master。假設我已經執行了四次提交A,B,CD。現在我剛剛意識到D是太實驗了,所以它不應該在master(還),而是在它自己的一個單獨的分支,說experimental從分支中刪除提交併將其放在單獨的分支上

我如何:

  • D自身的一個分支?
  • 回到C作爲master並在這個分支上執行新的提交?

(注:我不想只是取消提交)

+0

我不知道,如果你能移動一個提交,但你可以[撤消提交](http://stackoverflow.com/questions/927358/how-do-you-undo-the-last-commit),切換分支,然後再次提交。 – GolezTrol

回答

1

首先,你需要從masterbranchexperimental分支:

[email protected] ~/src/git/myproject [master] $ git branch experimental 

然後,您可以resetmaster分支到一個承諾的背後:

[email protected] ~/src/git/myproject [master] $ git reset HEAD~ --hard 
1

首先,在D提交創建experimental分支。此時它將與master相同。

做一個git checkout master

做一個git reset --hard HEAD~1。 (這使你承諾C
現在做一個push -f(從主分支。這將推C作爲最後提交在master)。

這應該解決它。

相關問題