关于本地文件git回退版本的操作
2017-09-29 15:58
302 查看
关于git仓库及本地文件的保存管理问题。
有以下的办法可以进行git操作,保证文件能快速修改并保存下来。一般git的仓库建立好后,对文件进行git add,再git commit后就可以保存到仓库中。
先来说下gitr的三个分区,分别为:工作区、暂存区、仓库存储区。
工作区:即为我们用ls命令可以看到的文件
暂存区:即为用git status 查看,看到的”Changes to be committed”下面列出来的文件,如果没有,说明你的暂存区还没用git add填充进去。
仓库存储区:即已经有一个对应的commit id号了,只要不要进行
git commit --amend对原有的commit id进行修改,就不会因本地文件修改而改变。
但经常发现在保存的文件错了,要再重新修改,这时就可以用到下面的办法了。
1. 当在工作区修改后源文件后,但对某个文件不想要了,想回退到之前的版本,这进可以用如下办法进行操作
git checkout -- fileA
这样就把fileA给回退到之前的版本而不影响其他文件已有的修改。(这个
--不加也是可以的)
如果当前目录有多个文件的,使用如下让当前目录修改撤消
git checkout .
2. 当在工作区修改源文件后,发现不想要当前文件的所有修改了,可用直接用如下办法回退
git reset --hard HEAD
把当前目录的git project给还原成git log看到commit的修改。但是,要用这个git reset时,要注意,其reset的是整个.git project,而不是你当前的目录而已,不然就用“1”办法,使用git checkout 《your directory》即可
3. 当工作区已经修改好,并且已经git add了,存放到暂存区了,但还没git commit到仓库,这时可以如下做法
git reset HEAD fileA
即可以把fileA给送回工作区,这时可以做修改了,再可以参考办法“1”“2”去做了
4. 当工作区与暂存区都已经做好,即已经git add与git commit了,这时又分如下四种办法
4.1 如果只是修改当前的commit message,则可如下git commit --amend
这时可修改message,再保存退出即可。如果遇到保存退出出错,即可以再加个-n去执行,-n是忽略commit message的格式检查。
4.2 如果想要把当前的commit id中的文件给放到暂存区,则可以如下
git reset --soft HEAD~1
这时,已经把之前修改的文件放到暂存区了,进行想要的操作了,从而进行办法“3”
4.3 如果想直接把当前的文件放到工作区,则可以如下操作
git reset --mixed HEAD~1
这时,东西就全部回到工作区了,这时可用办法“1”进行操作
4.4 如果不想要当前的commit了,并且放弃当前工作区与暂存区的修改了,想要没执行git commit前的 某个commit id,这时可以如下办法回退到之前的 id中去
git reset --hard commitId
这时使用git log看到的就是之前的commit id了,如果你还想查看之前的commit id,还有办法,使用git relog查看即可找到你之前的commit id号了
4.5 还有一种情况,就是只是想单纯回退到某个commit,并且保留当前工作区的修改,可以如下
git reset commitId
这样就退到你想要的commit,而且也保留了当前的修改内容了。。。
相关文章推荐
- git-【二】本地git操作提交、版本回退
- 记录一次操作git 的愚蠢行为(本地代码只 git add 过,没有 commit ,push 过,然后版本回退 导致本地代码丢失)
- 记录一次操作git 的愚蠢行为(本地代码只 git add 过,没有 commit ,push 过,然后版本回退 导致本地代码丢失)
- Git使用本地仓库之基本操作--版本回退,后悔怎么办,撤销未提交的修改
- Git的纯命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤销更新,分支的创建/切换/更新/提交/合并,代码冲突
- Git学习系列(二)创建本地仓库及文件操作
- git误删文件找回方法/git版本回退方法
- git的安装和使用Mac版本,本地代码仓库文件的删除和重新导入代码
- 【5】Git版本回退操作
- Git 回退即删除本地仓库commit版本以及删除远端仓库相应的版本(即github上的commit版本)
- Android Studio Git .gitignore操作(版本控制应该忽略的文件)
- 版本管理-git未commit前,执行rm -r操作后想恢复文件
- R 语言基本操作(基本信息的查看、与本地文件系统交互、编译器版本升级)
- git 回退到服务器版本操作
- git 版本回退之关于git reset --hard 和 --soft区别
- git教程2(版本回退、管理修改、删除文件)——廖雪峰老师
- Git学习系列(三)版本回退和管理文件的修改及删除操作
- 浅入Git学习③--Git操作之版本回退
- git回退某一个版本的某个文件
- git commit没有push,想要回退本地版本库