2015-04-16 37 views
1

我使用git revert撤銷已提交併推送到我的開發分支的更改(這是我第一次使用此命令)並且一切順利,但我需要知道是否有可能:保持開發的方式,但暫時取回這些變化,然後將它們添加到一個新的分支(不想在開發這個工作)?在git恢復並移動到單獨分支後取回更改

+0

你究竟是如何使用'git revert'? – Alik

+0

'git恢復' – zero

+0

有很多方法可以做到這一點。你可以選擇提交到你的分支,或者你可以檢查你的分支並恢復恢復提交。 – meagar

回答

2

我建議cherry-pick你提交到新的分支(如果重置是不可能的)。

  1. 運行git log並複製尚未恢復的提交的散列。
  2. git checkout你的新分支。
  3. 運行git cherry-pick <copied-commit-hash>

你會得到完全新的不同的哈希提交。

Read more about cherry-pick

+0

有沒有分配新哈希的好處?我想知道,因爲這段代碼在某些時候會被合併回開發者(仍然試圖弄清楚git是如何工作的) – zero

+0

我認爲它是存在的。基本上你需要恢復恢復以保持歷史可以理解。所以它應該是新的提交。 – peresleguine

+0

合併後,您的更改看起來是合理的:提交 - >恢復 - >再次提交。 – peresleguine

1

這個完美工作: How do I create a new git branch from an old commit?

剛檢查出來的一個新的分支創造的一部分。這很簡單。

+0

這種方法的缺點:如果您隨後與dev合併(在任一方向),恢復提交將成爲合併的一部分,最多隻會讓您發生衝突,或者最壞情況下會再次撤消這些更改。恢復回覆會保護你免受這種情況的影響 – ComputerDruid