git----版本的跳转和修改的撤回

git log:查看之前修改的日志信息

            加上--pretty=oneline可以使信息简短

git reset --hard :跳转到某个版本

git reflog:用于记录每次跳转版本和提交的命令,可以查出每次的版本号

git checkout -- :将工作区的文件的修改清除
    这里有两种情况:
    一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
    一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

git reset head :清除暂存区的修改(使用git add添加到暂存区的修改,即取消git add)


在对版本的修改之前,我们先修改然后提交一个新的版本

修改前的README.md

git----版本的跳转和修改的撤回_第1张图片

修改后

git----版本的跳转和修改的撤回_第2张图片

将修改提交

git----版本的跳转和修改的撤回_第3张图片

push到远程仓库

git----版本的跳转和修改的撤回_第4张图片

假如这个时候突然想回到上一个版本,即撤销这次修改,那咋整,这个时候我们只需要使用git reset --hard 来跳转到上一个版本即可,而上一个版本的版本号可以通过git log或者git reflog来查看

git----版本的跳转和修改的撤回_第5张图片

这里黄色的字体commit 后面的就是版本号

git----版本的跳转和修改的撤回_第6张图片

git reflog显示了版本号的前几位,实际上跳转版本时也只需要前几位

此时我们看到了在new version之前的版本号是0679020,那我们就跳转到该版本

再使用git log查看,可以发现已经没了new version那个版本

git----版本的跳转和修改的撤回_第7张图片

我们使用git reflog来看,会发现多了一个跳转的记录

git----版本的跳转和修改的撤回_第8张图片

这是在已经提交上去之后的回退版本,如果是在工作区的修改,就更容易撤回了

再次修改READNE.md文件,不添加到暂存区

git----版本的跳转和修改的撤回_第9张图片

使用git checkout -- 撤回工作区的修改

此时的README.md文件已经回到原来的样子了

git----版本的跳转和修改的撤回_第10张图片

这种git操作适用于某个文件的修改不想撤回,又忘记改了哪些部分,当然,假如所有文件的修改都想撤回,直接git checkout -- *即可

如果修改已经被提交到暂存区,则需要使用git reset head 来清除暂存区的修改,然后再清除工作区的修改就能将修改彻底撤回

再对README.md做修改

git----版本的跳转和修改的撤回_第11张图片

将修改添加到暂存区,使用git status查看可发现已经被提交到暂存区了

git----版本的跳转和修改的撤回_第12张图片

将添加到暂存区的add撤回,再使用git status查看状态发现已经从暂存区回到工作区了

git----版本的跳转和修改的撤回_第13张图片

使用git checkout -- 后工作区的修改也被删除,使用git status查看时无可提交的修改,README.md也回到原来的版本

git----版本的跳转和修改的撤回_第14张图片

git----版本的跳转和修改的撤回_第15张图片

你可能感兴趣的:(git)