git restore 恢复文件状态

`git restore` 是 Git 中用于恢复文件状态的命令。它可以帮助你将文件恢复到某个提交的状态或撤销未暂存的更改。

git restore . 和 git reset .  区别

`git restore .` 用于将工作区的文件恢复到最新的提交状态,丢弃未暂存的更改。
`git reset .` 用于将暂存区的更改重置,但不会影响工作区的文件。它会将所有已暂存的更改移除,即取消`git add`的效果。

总结:

  • `git restore .`:恢复工作区文件。
  • `git reset .`:重置暂存区文件。

以下是git restore一些常用的用法:

恢复未暂存的更改

如果你想撤销对某个文件的未暂存更改,可以使用:

git restore <文件名>

举个例子:工作区有一个文件a.txt,修改内容后使用git status看下状态

如果我们不想保留修改的内容,就可以使用git restore <file>撤销在工作区的修改。 

可以看到,代码已经回退到我们修改之前的状态。

注意:我们也使用git restore .命令撤销工作区的所有文件的修改,但是要慎用

恢复已暂存的更改

如果你已经将更改添加到暂存区,但想要撤销这些更改,可以使用:

git restore --staged <文件名>

举个例子:当前目录下有三个文件进行了修改,并提交到了暂存区。

我们撤回暂存区的b.txt文件:

可以看到暂存区没有b.txt文件。查看状态可以看到,b.txt文件的状态变成了未跟踪状态。

git restore --source 使用场景

1、恢复已修改但未提交的文件

将文件恢复到最新提交的状态。

git restore --source HEAD <file>

2、恢复特定提交中的文件

从历史提交中恢复文件。

git restore --source <commit-hash> <file>

3、恢复到另一个分支的文件状态

从其他分支获取文件的状态。

git restore --source <branch-name> <file>

4、恢复整个目录

恢复某个目录的状态。

git restore --source <commit-hash> <directory>

这些操作可以帮助开发者在不影响当前工作区的情况下,获取特定版本的文件。

posted @ 2024-10-19 00:44  李小菜丶  阅读(612)  评论(0)    收藏  举报