git恢复被修改的文件

git恢复被修改的文件

恢复到最后一次提交的改动:

git checkout -- + 需要恢复的文件名

但是,需要注意的是,如果该文件已经 add 到暂存队列中,下面的命令就不灵喽
需要先让这个文件取消暂存:

git reset HEAD -- + 需要取消暂存的文件名

然后再使用第一条命令

如果感觉命令多了记不住,那就为git配置两个别名,比如:

git config --global alias.unstage 'reset HEAD --'
git config --global alias.restore 'checkout --'

我们拿 README.md 这个文件举例,比如修改了一段文字描述,想恢复回原来的样子:

git restore README.md

执行上面命令即可,
如果修改已经被 git add README.md 放入暂存队列,那就要 依次执行 如下两条命令:

git unstage README.md
git restore README.md

如果不配置别名的话,命令应该为:

git reset HEAD -- README.md
git checkout -- README.md

补充

git checkout . 

git checkout . 意思就是把当前副本的修改恢复。 . 代表当前路径下所有的
所以想要恢复所有修改的文件,也可以使用此命令,不过注意当前是哪个路径下,恢复错误就傻眼了…hhh~

### 恢复 Git 配置文件至之前版本的方法 当需要恢复 Git 配置文件到之前的版本时,可以通过多种方式实现这一目标。如果配置文件已经被提交到了仓库中,则可以直接利用 Git 的历史记录来完成此操作。 对于全局配置文件 `.gitconfig` 或者特定项目的配置文件 `repo/.git/config`,假设这些修改已经通过 commit 记录下来: #### 使用 git checkout 命令回滚单个文件 ```bash $ git checkout <commit-hash> -- ~/.gitconfig # 对于全局配置文件 ``` 或者针对某个具体项目内的配置文件: ```bash $ cd /path/to/repo $ git checkout <commit-hash> -- .git/config # 对应本地仓库配置文件 ``` 这里 `<commit-hash>` 表示想要恢复的那个提交的历史哈希值[^1]。 #### 利用 reflog 查找并重置到指定状态 如果最近有做过一些未推送到远程分支的操作,并且想撤销那些变更回到某次成功的配置时刻,可以借助 `reflog` 功能找到那个时间点对应的 HEAD 提交号,再做一次硬重置(注意这会丢失当前工作目录下的任何未保存改动): ```bash $ git reflog # 显示所有的HEAD变动日志 $ git reset --hard <commit-id># 把整个仓库的状态都调整为<commit-id> ``` 但是需要注意的是,`.gitconfig` 并不是由 Git 自动管理的版本化文件之一;它位于用户的主目录下,默认情况下不在任何一个 Git 库里边受控。因此如果是试图找回被意外覆盖或删除掉的个人级别的 Git 设置项,在没有事先备份的情况下可能就比较困难了。此时应该考虑从其他机器上复制一份相同的配置过来,或者是重新手动创建所需的选项。 另外一种情况是关于 SSH 密钥的问题,正如提到过的那样,SSH 秘钥也是重要的身份验证凭证,一旦丢失可能会导致无法访问私有的 Git 存储库。为了避免这种情况发生,务必定期做好重要资料的安全副本[^2]。 #### 处理忽略文件的情况 如果有不小心将不应该加入版本控制系统中的敏感数据或是操作系统特有的临时文件加入了 Git 跟踪列表,那么应当立即停止追踪它们并通过更新 `.gitignore` 来防止未来再次误纳入。例如处理 macOS 下产生的 `.DS_Store` 文件就可以采用如下方法[^3]: ```bash $ git rm --cached .DS_Store # 只是从索引中移除而不影响实际磁盘上的文件 $ echo ".DS_Store" >> .gitignore# 添加规则让.gitignore记住要忽略此类文件 $ git add .gitignore # 加入新的忽略模式到暂存区 $ git commit -m "Ignore DS_STORE files" ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值