假设我做了一些提交,让我们称它们为1,2,3,4,5和6(哈希)。
假设我正在使用哈希6进行提交。我想要做的就是回到哈希3,使其成为我的代码库的状态,就像我提交哈希3时的状态一样,就像其他提交一样从未发生过。
当我看到像this这样的答案时,似乎每个人都有不同的答案。 reset
,revert
,rebase
?我甚至不确定我是否知道这三个单词在英语中的区别。
我只想参加之前的提交。有人能告诉我怎么做吗?
答案 0 :(得分:11)
如果您已将某个分支机构推到某个地方或某人从您那里撤离,那么您唯一的选择就是git revert $COMMIT...
。
这将创建一个提交,撤消您在提交$COMMIT...
中所做的任何事情。
例如,要还原最后三次提交:
git revert HEAD~2..HEAD
如果您将提交完全保留为本地和私有,则只需git reset $COMMIT
。
这会将您的分支指针移动到$COMMIT
,因此分支不再包含以下提交。
根据索引和工作树的状态,您可能需要git reset --soft $COMMIT
或git reset --hard $COMMIT
中的任何一个选项。
例如,要将分支重置为最后三个之前的提交:
git reset HEAD~3
git rebase
听起来不像你想要的那样。
当你想要从它们所基于的一个提交中复制或“移动”一些提交时,你使用它,基于另一个提交(另一个基础),因此“rebase”。
答案 1 :(得分:-1)
这样怎么样:
为哈希3创建分支。
创建PR或将此分支合并到master(hash 6)