git restore 命令

Git 基本操作Git 基本操作


git restore 命令用于恢复或撤销文件的更改。

git restore 命令是 Git 2.23 版本引入的,用于简化和改进文件恢复操作,相比于旧的命令(如 git checkoutgit reset),它更专注于恢复文件内容和工作区状态。

git restore 可以恢复工作区和暂存区中的文件,也可以用于丢弃未提交的更改。

基本语法

git restore [<options>] [<pathspec>...]
  • <pathspec>:要恢复的文件或目录路径。
  • <options>:用于定制恢复行为的选项。

常用选项和用法

选项说明用法示例
--source=<commit>从指定的提交中恢复文件内容。默认为 HEAD,即当前提交。git restore --source=HEAD~1 file.txt
--staged恢复暂存区中的文件内容到工作区,而不是恢复工作区中的内容。git restore --staged file.txt
--worktree恢复工作区中的文件内容到当前工作区状态。git restore --worktree file.txt
--ours在合并冲突时,恢复为当前分支的版本(即"我们"的版本)。git restore --ours file.txt
--theirs在合并冲突时,恢复为另一个分支的版本(即"他们"的版本)。git restore --theirs file.txt
--conflict=<style>指定合并冲突的样式,例如 mergediff3git restore --conflict=diff3 file.txt
--dry-run显示将要恢复的文件和路径,而不实际进行恢复。git restore --dry-run
-s, --source--source 相同,用于从指定提交中恢复文件。git restore -s HEAD~1 file.txt
-W, --worktree恢复工作区中的文件内容到当前工作区状态(与 --worktree 相同)。git restore -W file.txt
-S, --staged恢复暂存区中的文件内容到工作区,而不是恢复工作区中的内容(与 --staged 相同)。git restore -S file.txt

实例

恢复工作区中的文件

恢复工作区中的文件到最近的提交状态(即丢弃对文件的所有未提交更改):

git restore file.txt

恢复暂存区中的文件

将暂存区中的文件恢复到工作区,实际上是将文件从暂存区移除(不提交):

git restore --staged file.txt

从指定提交恢复文件

从某个提交(例如 HEAD~1)中恢复文件:

git restore --source=HEAD~1 file.txt

恢复文件的"我们"版本

在合并冲突时,恢复为当前分支的版本(即"我们"的版本):

git restore --ours file.txt

恢复文件的"他们"版本

在合并冲突时,恢复为另一个分支的版本(即"他们"的版本):

git restore --theirs file.txt

显示将要恢复的文件和路径

显示将要恢复的文件和路径,而不实际进行恢复:

git restore --dry-run

恢复多个文件

恢复工作区中的多个文件:

git restore file1.txt file2.txt


Git 基本操作Git 基本操作