Git 重设基础vs重置vs恢复?我只想后退
假设我进行了大量的提交,我们将它们称为1、2、3、4、5和6(散列) 假设我正在提交哈希6。我想做的就是回到hash 3,使我的代码库的状态与我提交hash 3时的状态相同,就好像其他提交从未发生过一样 当我看到这样的答案时,似乎每个人都有不同的答案<代码>重置,Git 重设基础vs重置vs恢复?我只想后退,git,Git,假设我进行了大量的提交,我们将它们称为1、2、3、4、5和6(散列) 假设我正在提交哈希6。我想做的就是回到hash 3,使我的代码库的状态与我提交hash 3时的状态相同,就好像其他提交从未发生过一样 当我看到这样的答案时,似乎每个人都有不同的答案重置,还原,重设基础?我甚至不确定我是否知道这三个词在英语中的区别 我只想参加以前的一次活动。有人能告诉我怎么做吗?如果你已经把你的分支推到了某个地方,或者有人从你那里拉过来,你唯一的选择就是git revert$COMMIT… 这将创建一个提交,该
还原
,重设基础
?我甚至不确定我是否知道这三个词在英语中的区别
我只想参加以前的一次活动。有人能告诉我怎么做吗?如果你已经把你的分支推到了某个地方,或者有人从你那里拉过来,你唯一的选择就是
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
听起来不像您想要的
当您想从一个提交中复制或“移动”一些提交时,您可以使用它,这些提交是基于另一个提交(另一个基础),因此需要“重基”。这样如何:
相关:
reset
意味着重置您的回购协议,使其看起来像是在不同的提交(历史记录和所有记录)中执行的“还原”意味着添加更多的提交,使代码看起来像在不同提交时一样,但历史记录不同(历史记录包括旧状态和返回到不同状态的路径)<代码>重新基址根本不会更改代码,只会更改历史记录。此外,还原允许您还原到特定的提交,丢失头和该提交之间的所有内容。Rebase允许您选择要删除的提交-如果他想转到提交3,如果他添加了3到6之间的文件,这将不起作用。也许他的意思是git-Rebase-interactive
。