创建新的Git分支并回滚到先前版本。

3

我有几个不同的分支,包括我的主分支。我想从主分支创建一个新分支,我认为可以像这样完成,如果我错了请纠正我。

git branch masterDup
git checkout masterDup

我想将masterDup分支回滚到旧版本,但不影响主分支或任何其他分支。因此,只有masterDup会被回滚。如果可以的话,我该如何仅使用提交ID回滚这个新创建的分支。
我在日志历史中拥有提交ID:commit 6f041c1e37bb97aab35678d35c8923fabe33c8d2c。
我正在使用终端进行git命令。

我建议你至少阅读一本git书籍,显然你连git的基础都没有掌握。 - KurzedMetal
我不会这么说。总的来说,Git 是一种相对高级的计算机知识。大部分 Stack Overflow 的问题都可以通过阅读官方文档解决。 - three
2个回答

2
当然,您可以使用以下命令检查新分支:
git checkout -b masterDup

然后您将其重置为早期版本

git reset --hard HEAD~x 

其中x代表向前的版本数(或者使用哈希值,如果你喜欢的话)

已编辑此回答,请查看评论。


HEAD^x 指的是合并提交中的第 x 个父节点!你可能是想说 HEAD~x。(或者用 HEAD^^^^... 重复 x 次。) - vergenzt
在新分支的检出中,-b 是什么作用? - Chapsterj
@vergenzt,是的,你说得对。我通常会回退一个提交,所以经常会弄混,但并没有造成任何损害。 - three
在我的情况下,应该是 git reset --hard HEAD~6f041c1e37bb97aab35678d35c8923fabe33c8d2c,还是只需省略波浪线符号,并且在HEAD和提交ID值之间留一个空格。 - Chapsterj
1
@Chapsterj,请使用git reset --hard 6f041c1e37bb97aab35678d35c8923fabe33c8d2c 进行还原。这样你的主分支将回到 HEAD,而你的 masterDup 分支将停留在 6f041。除非你合并它们,否则它们将保持在这个状态。 - three
显示剩余2条评论

0
新分支检出之后
git reset --hard 6f041c1e37bb97aab35678d35c8923fabe33c8d2c

git reset --hard 6f041c1e37bb97aab35678d35c8923fabe33c8d2c 这个命令会影响其他分支吗?还是只会影响我当前所在的分支? - Chapsterj
感谢马里奥的帮助。 - Chapsterj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接