Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 重设基础vs重置vs恢复?我只想后退_Git - Fatal编程技术网

Git 重设基础vs重置vs恢复?我只想后退

Git 重设基础vs重置vs恢复?我只想后退,git,Git,假设我进行了大量的提交,我们将它们称为1、2、3、4、5和6(散列) 假设我正在提交哈希6。我想做的就是回到hash 3,使我的代码库的状态与我提交hash 3时的状态相同,就好像其他提交从未发生过一样 当我看到这样的答案时,似乎每个人都有不同的答案重置,还原,重设基础?我甚至不确定我是否知道这三个词在英语中的区别 我只想参加以前的一次活动。有人能告诉我怎么做吗?如果你已经把你的分支推到了某个地方,或者有人从你那里拉过来,你唯一的选择就是git revert$COMMIT… 这将创建一个提交,该

假设我进行了大量的提交,我们将它们称为1、2、3、4、5和6(散列)

假设我正在提交哈希6。我想做的就是回到hash 3,使我的代码库的状态与我提交hash 3时的状态相同,就好像其他提交从未发生过一样

当我看到这样的答案时,似乎每个人都有不同的答案<代码>重置,
还原
重设基础
?我甚至不确定我是否知道这三个词在英语中的区别


我只想参加以前的一次活动。有人能告诉我怎么做吗?

如果你已经把你的分支推到了某个地方,或者有人从你那里拉过来,你唯一的选择就是
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
听起来不像您想要的

当您想从一个提交中复制或“移动”一些提交时,您可以使用它,这些提交是基于另一个提交(另一个基础),因此需要“重基”。

这样如何:

  • 为散列3创建一个分支

  • 创建PR或将此分支合并到主分支(散列6)


  • 相关:
    reset
    意味着重置您的回购协议,使其看起来像是在不同的提交(历史记录和所有记录)中执行的“还原”意味着添加更多的提交,使代码看起来像在不同提交时一样,但历史记录不同(历史记录包括旧状态和返回到不同状态的路径)<代码>重新基址根本不会更改代码,只会更改历史记录。此外,还原允许您还原到特定的提交,丢失头和该提交之间的所有内容。Rebase允许您选择要删除的提交-如果他想转到提交3,如果他添加了3到6之间的文件,这将不起作用。也许他的意思是
    git-Rebase-interactive