这是我当前的情况,在分支draft
上工作:
* 51c716b (HEAD -> draft, tag: Printed, remote/draft) Dirty squeezing of the draft to be printed on as few pages as possible
* 9219af9 Draft ready for reading
* e3366b2 Making progress on the draft
* 163ab8f (master, remote/master) Create a draft
现在我已经得到了关于草案Printed
版本的反馈,我希望如此
继续这个项目。显然,最新的提交51c716b
(标记为
Printed
)不是我想要恢复的人:我想从中恢复
9219af9
。但我不想放松51c716b
。
在下一次提交后,我应该怎样做才能让这种情况变得像这样?
* b57cc00 (HEAD -> draft, remote/draft) Integrate feedback from readers.
| * 51c716b (tag: Printed) Dirty squeezing of the draft to be printed on as few pages as possible
|/
* 9219af9 Draft ready for reading
* e3366b2 Making progress on the draft
* 163ab8f (master, remote/master) Create a draft
(我还希望标记Printed
在remote
上可用。)
注意:我知道这会给draft
指向51c716b
的人带来麻烦。但我相信没有人做过这样的事情;)
答案 0 :(得分:1)
您可能正在寻找Reset。 Git分支是指向提交的引用,因此您基本上希望将本地引用draft
移动到指向9219af9
。你可以这样做:
git reset --hard 9219af9
或者,如果您使用ancestry references:
git reset --hard HEAD~1
之后,您可能会在示例中创建一个新提交(b57cc00
),并且您必须更新远程引用draft
( origin
中的一个指向新提交的那个。你可以用:
git push origin draft --force-with-lease
This会告诉遥控器你知道你已经失去了" 51c716b
。但是,Git仍然会保留有引用指向它的提交,并且由于您在51c716b
上有一个标记(也是一个引用),因此您始终可以返回它。如果您希望其他人(或您未来的自己)能够访问它,请务必按下您的标签:
git push origin Printed