改代码时偶尔会把一个文件试乱,但又不想动别的改动。新一点的 Git 可以用 git restore 只还原指定文件。
环境:Git 2.30+。可以开个小目录试:
mkdir git-restore-demo && cd git-restore-demo
git init
printf 'hello\n' > app.txt
git add app.txt
git commit -m 'init'
printf 'broken\n' > app.txt
git diff -- app.txt
git restore app.txt
cat app.txt
最后会看到 app.txt 又变回:
hello
如果文件已经 git add 进暂存区了,先退回暂存区可以用:
git restore --staged app.txt
我觉得它适合那种“这个文件不要了,其他文件先留着”的场景。用之前最好先 git diff -- 文件名 看一眼,免得把还想保留的临时改动也还原掉。