2012-03-10 113 views
0

讓我們假設git的日誌顯示的版本:如何在git中恢復並提交previuos版本?

fff 
... 
ccc 
bbb 
aaa 

如何要回版本BBB並提交它不破壞歷史。這樣git的日誌會顯示:

bbb* 
fff 
... 
ccc 
bbb 
aaa 
+0

'git reset --hard bbb'是不夠的,因爲它破壞了歷史。 – Stancell 2012-03-10 09:28:59

+0

'git checkout bbb'是不夠的,因爲它沒有提交。 – Stancell 2012-03-10 09:31:29

回答

1

你想嘗試做git revert

git revert -n fff eee ddd ccc 

當然,你可以使用符號,如master~4..master

+0

我正在尋找一個比列表15更容易的方式提交哈希。我不喜歡計算提交次數。太容易犯錯誤。 – Stancell 2012-03-10 09:33:33

+0

@Stancell - 您可以使用最後一行中提到的符號。 – manojlds 2012-03-10 10:13:41

+0

是的,它會工作。如果我能做一些像'git revert -n bbb..master'這樣的東西會更好。假設每個新的一年我都要帶上新年版的網頁ar標誌。計數數百次提交不是一種選擇:) – Stancell 2012-03-10 10:39:12

0

我想你可能使用git reset --hard,如果您按照git reset --soft回到您所在的位置:

git reset --hard bbb 
git reset --soft fff 
git commit 
+2

@downvoter,關心評論? – svick 2012-03-10 10:31:04