Git工作区、暂存区、版本库概念
Git工作区、暂存区、版本库概念
在整个的git中,一共提供了三个区域。
工作区:用户操作的文件夹,所有的文件操作都以工作为主。
Git仓库:
暂存库:将工作区中为保存的文件保存到暂存区中,此部分由Git维护
版本库:将项目发布代码的区域。
用户在工作区中编写的代码,都不会影响到git的版本库,如果说要想将工作区中的代码发布到版本库中,就需要先将工作区的代码提交到暂存库中,使用git add . 命令,然后再使用git commit -a -m "注释" 提交到版本库中。

保存在暂存区中的智能说是暂时需要的,从工作区中增加到暂存区中的文件,也可以在暂存区中删除,然而要想真正发布项目,就必须提交到版本库中。每一次提交都会生成一个commit id,用于退回版本,而在版本库中的head会指向最后提交的代码。
GIT版本穿越
git的强大在于可以很方便的进行代码版本的回退,和前进。核心的概念在于每一次提交都会有一个commit id
git log 查看提交日志
git log --pretty=oneline 格式化查看日志

当这个HEAD -> master指针指向的版本,就表示当前使用的版本。而当有最新的提交上来,指针就会指向当前最新的提交点。当我们改变这个指针的指向,就可以进行代码的版本回退和前进操作。
现在我这里提交了三次,有三个版本。
回退到上一个版本:git reset --hard HEAD~1


再次查看的时候,我上一个版本只提交了两次。如果此时发现回退版本回退过头了,想要撤销回来,那这个时候因为回退之前的版本已经删除,则我们需要去看删除日志去找到之前的版本ID
命令:git reflog

可以看到我们上一次的回退点。使用命令:git reset --hard 4d86a25 ,再次查看,三个分支又可以在显示

GIT撤销修改
在开发过程中,经常会发生无用的修改操作,在git中可以撤销修改操作,撤销修改需要考虑到两种情况,
1、在工作区中发生了改变,但是此时还没有提交到暂存区
2、已经提交到了暂存区,但是没有发布到版本库中(master分支中)
在工作区中发生改变,撤销。此时已经修改了一个文件,已经有状态显示。

使用命令:git checkout重新检出代码,会告诉哪一些文件有没有发生过修改。前面修改的是这个文件,也检测出这个文件发生了修改。

要想恢复代码,使用git checkout 文件名称 来恢复即可。此时恢复之后再通过git status查看状态时,已经没有了修改状态

工作区已经修改完成,提交到了暂存区中。撤销
此时修改了两个文件,并且已经使用git add . 增加到了暂存区中,

要想将暂存区中的代码撤销回来,则要先将暂存区的代码撤回到工作区中,然后再撤销,
使用命令:git reset HEAD Hello.java

撤销回来之后查看状态,发现此时已经退回到工作区中了,在通过git checkout 文件名称 命令进行撤回操作

文件删除
要想进行文件的删除,直接通过电脑右击删除即可。但是此时在实际的版本库中是没有被删除的。要想删除,提交到版本库中。

如果在日常工作区中发生了删除操作,如果没有提交到版本库中,可以直接检出版本库中的代码,如果在版本库中已经提交删除了,则先退回版本库版本,而后通过检出还原。
使用命令: git checkout --Demo.java

浙公网安备 33010602011771号