2012-03-10 116 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