【发布时间】:2013-04-18 10:41:17
【问题描述】:
我正在使用 SourceTree 和 Git-Flow 模式。现在我已经为我的 beta 测试人员准备了一个版本来测试,所以我创建了一个新的 release/v1.0.1 分支。但是我的想法一闪而过,我决定完成(合并到develop 和master 并标记)版本,即使我什至还没有将版本发送给我的测试人员。因此,如果我的测试人员发现任何错误,我希望再次打开发布分支,我可以在发布分支中修复这些错误,然后当所有错误都修复后,我可以完成发布。
那么我怎样才能最好地使用 SourceTree(或使用 git 命令)轻松恢复到我拥有 release/v1.0.1 分支时的状态?
来自 SourceTree 的附加屏幕转储:
编辑:好的,我在develop(HEAD~2)上做了git reset --hard HEAD~2,因为我已经测试过手动签出。但是现在当我结帐master 并执行git reflog 时,在我看来我应该对 HEAD~6 进行重置
Peters-MacBook-Pro:Remessage peterwarbo$ git reflog
f7663b1 HEAD@{0}: checkout: moving from develop to master
3d132da HEAD@{1}: reset: moving to HEAD~2
2f1c753 HEAD@{2}: checkout: moving from master to develop
f7663b1 HEAD@{3}: checkout: moving from develop to master
2f1c753 HEAD@{4}: merge release/v1.0.1: Merge made by the 'recursive' strategy.
4332fe4 HEAD@{5}: checkout: moving from master to develop
f7663b1 HEAD@{6}: merge release/v1.0.1: Merge made by the 'recursive' strategy.
fe323ef HEAD@{7}: checkout: moving from release/v1.0.1 to master
28a63ea HEAD@{8}: commit: Bumped version number to 1.0.1
但是当我这样做时,我得到了这个“错误”:
Peters-MacBook-Pro:Project peterwarbo$ git reset --hard HEAD~6
fatal: ambiguous argument 'HEAD~6': unknown revision or path not in the working tree.
编辑 2: 新图片来说明他妈的。
编辑 3: 在 user1615903 的答案中发出 git 命令后,附上新图像以说明当前状态。为什么说develop落后2?为什么即使我重置为 master 到初始提交 (fe323ef),但仍会从 release/v1.0.1 合并到 master?
【问题讨论】:
-
所以基本上你只需要在master和develop中删除最后一次提交,并再次将28a63ea设置为“release/v1.0.1”?
-
我相信吗?我还需要删除对
master和develop进行的合并 -
标签也应该被删除。基本上,我只想及时回到创建
release/v1.0.1分支并提交以提高版本号时的状态。 -
HEAD~6(从 HEAD 返回 6 次提交)与HEAD@{6}(前 6 次 git 操作)不同