git 还原修改,放弃当前的修改


git restore

这是 Google 对 https://www.talktocomputer.site/blogs/78/ 的缓存。
git 2.23 版本新增了switch、restore命令,因为git checkout 命令职责较多、不够明确,而restore命令则专门用来还原、撤销修改等,我们这里来总结下git restore 命令的一些常用的用法。另外,这个命令在2.27.0版本还是实验性的,将来行为可能会改变。
git restore 撤销文件工作区的修改
  命令:git restore --worktree <path>
  举例:git restore --worktree test2.txt
  tips:如果暂存区有该文件的修改,恢复到和暂存区一致;如果暂存区没有该文件,会将工作区的文件恢复到和最近的提交的一致。–worktree 也可以省掉,即:git restore <path>
git restore 撤销工作区所有文件的修改
    命令:git restore .

git restore 撤销暂存区的修改,将文件恢复到工作区去
  命令:git restore --staged <path>
  举例:git restore --staged test2.txt

  举例2:git restore --staged ‘*.txt’
  tips:git restore 撤销暂存区某些文件的修改,将这些文件恢复到工作区去   https://blog.csdn.net/u013493841/article/details/104451987

git restore 将工作区内容切换到上个 commit 版本
  命令:git restore --source=HEAD~1 .

git restore 将工作区内容切换到某个版本库去
  命令:git restore --source=<commit> .
  举例:git restore --source=6271090 .
  tips:这个命令是将当前工作区的内容都恢复到了版本6271090,但是不会改变历史记录,如果有提示需要有删除的文件等,可以使用git add,然后提交生成新的提交记录,这点和revert有些类似,但是也有不同,revert可能会生成多个重做的记录,但是restore不会生成新的记录,如果有文件增删改动可能需要自己做add和commit操作。
参考资料:
https://git-scm.com/docs/git-restore

https://hub.fastgit.org/

还原有三种情况:

只是修改了文件,没有任何 git 操作
修改了文件,并提交到暂存区(即:编辑之后,进行git add 但没有 git commit -m "留言xxx")
修改了文件,并提交到仓库区(即:编辑之后,进行git add 并且 git commit -m "留言xxx")
如果是情况1:

git checkout -- aaa.html 			// 指定还原`aaa.html`文件
git checkout -- * 					// 还原所有文件

如果是情况2:

git log --oneline            // 可以省略
git reset HEAD               // 回退到当前版本
git checkout -- aaa.html

如果是情况3:

git log --oneline   			 // 可以省略
git reset HEAD^    				 // 回退到上一个版本,注意看HEAD后面有个 ^						HEAD^ 是回退到上个版本					HEAD^^ 是回退到上上个版本					HEAD~数字 是回退到数字个版本
git checkout -- aaa.html


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM