Git Revert vs Git Reset :撤消和调整 Git 历史记录中的更改

Git RevertGit Reset 是 Git 中的两个重要命令,用于撤消和调整 commit 存储库历史记录中的更改。 Git Revert 以下是有关如何使用和 的 指南 Git Reset

 

Git Revert

  • Git Revert 允许您创建一个新的提交来撤消( revert) 先前提交的更改。

  • 对于 revert a commit,使用以下命令:

    git revert <commit_id>
    

    替换为 您要恢复的 <commit_id> ID。 commit 将创建一个新的 commit,撤消所选 commit.

  • Revert 不会改变 commit 历史记录,而是创建一个新的历史记录 commit 来恢复更改。

 

Git Reset

  • Git Reset HEAD 允许您通过将当前分支移动到特定提交来 返回到之前的状态。

  • Git Reset 具有三种不同的模式: --soft, --mixed(default), and --hard.

  • 对于a resetHEAD 当前分支 commit,请使用以下命令:

    git reset --mode <commit_id>
    

    替换为 您要重置为 <commit_id> 的 ID。 commit

  • Git Reset 模式:

    • -soft: 将当前分支移动 HEAD 到指定的,并 在暂存区域中 commit 保留上一个分支的更改。 commit 使用命令 git reset --soft <commit_id>.
    • --mixed: 这是默认模式。 将当前分支移动到指定的提交,并 从暂存区域中 HEAD 删除前一个分支的更改。 commit 使用命令 git reset --mixed <commit_id>.
    • --hard: HEAD 将当前分支 移动到指定的位置 commit 并放弃前一个分支的所有更改 commit。 使用它时要小心,因为任何未提交的更改都将丢失。 使用命令 git reset --hard <commit_id>.
    <commit_id>
  • Git Reset 更改 commit 历史记录并可能导致数据丢失,因此请谨慎使用。

 

Git RevertGit Reset 用于撤销和调整 Git 中提交历史记录的强大工具。 谨慎使用它们以确保项目稳定性并避免数据丢失。