Undoing Changes in Git: Working Directory, Staging Area, and Committed Changes

English 简体中文 Tiếng Việt
Summary

Effectively managing code changes in Git requires understanding how to undo modifications at various stages. To discard changes in the working directory before staging, developers can use git checkout [filename] or git checkout . for all files. If changes are already staged but not yet committed, git reset HEAD [filename] or git reset HEAD . will unstage them while preserving working directory modifications. For committed changes in the local repository, git reset offers options: --soft [commit id] undoes the commit but keeps changes staged, --mixed [commit id] unstages them, and --hard [commit id] discards all changes, which should be used with caution. Mastering these commands is essential for maintaining control over a codebase.

当使用Git时,理解如何在不同阶段撤销更改至关重要——无论是在工作目录、暂存区,还是在将更改提交到本地存储库之后。本指南将引导您完成必要的Git命令,以有效地管理和恢复更改,确保您的版本控制过程顺利且无错误。

修改工作目录中的文件,但尚未添加到暂存区

当您更改工作目录中的文件但尚未将其添加到暂存区时,如果需要,您可以轻松丢弃这些更改。

丢弃特定文件的更改

git checkout [filename]

使用此命令可将特定文件恢复到其上次提交的状态,撤销您所做的任何修改。

丢弃所有文件的更改

git checkout .

如果您想丢弃工作目录中所有文件的更改,此命令将将其重置为其上次提交的状态。

查看所做的特定更改

git diff [filename]

在丢弃更改之前,您可能想查看您修改的内容。此命令将显示对文件所做的特定更改。

撤销已添加到暂存区的文件

如果您已将文件添加到暂存区(git add)但尚未提交它们,您仍然可以撤消此操作。

撤销已添加到暂存区的文件

git reset HEAD [filename]

此命令将文件从暂存区中删除,但更改仍保留在工作目录中。

撤销暂存区中的所有文件

git reset HEAD .

如果您想从暂存区中删除所有文件,请使用此命令。更改将保留在工作目录中。

撤销后,暂存区中的内容将被删除,但工作目录中的修改将被保留,允许您进行进一步的更改或更正。

撤销已提交到本地存储库的更改

有时,您可能需要撤销已提交到本地存储库但尚未推送到远程存储库的更改。

撤销提交,但将更改保留在暂存区和工作目录中

git reset --soft [commit id]

此命令撤消提交,但更改保留在暂存区和工作目录中,允许您修改提交或进行进一步的修改。

撤销提交并取消暂存更改,但保留工作目录更改

git reset --mixed [commit id]

此选项撤消提交并取消暂存更改,但您的修改仍然存在于工作目录中。

撤销提交并丢弃所有更改

git reset --hard [commit id]

谨慎使用此命令。它将撤消提交,取消暂存更改并丢弃工作目录中的所有修改。

理解这些Git命令使您能够有效地管理代码更改,帮助您自信地浏览开发的各个阶段。无论您是丢弃不需要的修改、取消暂存文件还是回滚提交,这些工具对于保持对代码库的控制至关重要。

GIT RESET STAGING AREA UNDO CHANGE

  RELATED

  COMMENTS

0

No comment for this article.