您的位置:首页 > 其它

关于本地文件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 reset checkout commit add
相关文章推荐