📌  相关文章
📜  git revert commit 单个文件 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:00:56.612000             🧑  作者: Mango

如何使用 Git 撤销某个 commit 中的单个文件

在进行 Git 版本控制时,我们有时候可能会需要在某个 commit 中撤销或修改某个文件。本文介绍如何使用 Git 撤销某个 commit 中的单个文件。

步骤一:查找 commit ID

首先,我们需要查找待撤销的 commit ID。可以使用以下命令查找:

$ git log

这会显示所有 commit 的历史记录。找到需要撤销的 commit,复制它的 commit ID。

步骤二:撤销 commit 中的单个文件

接着,我们可以使用以下命令撤销 commit 中的单个文件:

$ git revert <commit-ID> <file-path>

其中,<commit-ID> 为待撤销的 commit ID,<file-path> 为待撤销的文件路径。这将创建一个新的 commit,包含对该文件的撤销更改。

示例

为了更好地理解,我们可以通过以下示例来演示如何撤销某个 commit 中的单个文件。

假设我们有以下 commit 历史记录:

commit a1b2c3d4e5f6g7h8i9j0k1l2 (HEAD -> master)
Author: John Doe <johndoe@example.com>
Date:   Mon Jun 21 12:00:00 2021 +0800

    Add file2.txt

commit m9n8b7v6c5x4z3l2k1j0q9p8 (tag: v1.0)
Author: John Doe <johndoe@example.com>
Date:   Sun Jun 20 12:00:00 2021 +0800

    Add file1.txt

commit s8t7r6e5w4q3f2z1d0b9n8m7 (tag: initial)
Author: John Doe <johndoe@example.com>
Date:   Sat Jun 19 12:00:00 2021 +0800

    Initial commit

我们想撤销 v1.0 版本中的 file1.txt 文件。首先,使用 git log 命令查找 v1.0 版本的 commit ID:

$ git log --pretty=oneline
a1b2c3d4e5f6g7h8i9j0k1l2 Add file2.txt
m9n8b7v6c5x4z3l2k1j0q9p8 Add file1.txt
s8t7r6e5w4q3f2z1d0b9n8m7 Initial commit

我们可以看到,v1.0 版本的 commit ID 为 m9n8b7v6c5x4z3l2k1j0q9p8。接着,使用以下命令撤销 file1.txt 的更改:

$ git revert m9n8b7v6c5x4z3l2k1j0q9p8 file1.txt

这将创建一个新的 commit,包含对 file1.txt 的撤销更改。

总结

通过上述步骤,我们可以轻松地撤销某个 commit 中的单个文件。注意,使用 git revert 命令会创建一个新的 commit,不会对原有的 commit 进行修改,因此可以保留历史记录并避免潜在的错误。