之前的文章我们学习了git本地操作相关的命令:git init、git status、git add 、git commit (-m )、git diff、git log,具体可以通过链接查看GIt本地相关操作(一),接下来我们继续学习git本地操作相关的命令。
一.基于本地仓库进行修改
1. git管理修改
我们来进行如下图展示的操作: 首先我们进入/opt/studygit目录下,对introduce.txt文件进行修改,具体命令
root@quietor-virtual-machine:~# cd /opt/studygit/
root@quietor-virtual-machine:/opt/studygit# pwd
/opt/studygit
root@quietor-virtual-machine:/opt/studygit# ll
总用量 16
drwxr-xr-x 3 root root 4096 8月 28 22:46 ./
drwxr-xr-x 4 root root 4096 8月 28 00:44 ../
drwxr-xr-x 8 root root 4096 8月 28 22:47 .git/
-rw-r--r-- 1 root root 280 8月 28 22:46 introduce.txt
修改introduce.txt文件的内容如图所示:
修改introduce.txt文件以后,我们执行git status、git diff、git add ,如图:
我们继续对introduce.txt文件进行修改,重复上述步骤,修改:
执行git status、git diff、git add 命令,如图:
现在我们执行git commit (-m )命令,如图:
2. 小结
我们操作的大体流程是:修改--->git add-->再次修改---->git commit
git commit命令,会只提交最近一次git add 命令提交的文件修改内容到本地仓库中,即使中间有多次修改,只以最后一次执行git add命令所提交的修改内容为准,本文中笔者使用的是同一个文件,不同文件也是如此。
3. git文件存储结构
git管理文件总共分为三块空间:工作区、本地版本库、缓冲区,远程仓库
工作区:本地电脑的上的一个普通目录
本地版本库:git在本地的一个管理文件的文件仓库
缓冲区:git本地仓库的一部分,用于存储要提交到本地仓库的文件修改数据
远程仓库:远端存储git管理的文件仓库,可以多个本地仓库进行连接,通过git push、git pull与本地仓库进行文件同步
具体关系如图:
git add把文件添加到stage缓存区,git commit把缓存的数据再提交到当前使用到的分支,图中dev和远程仓库我们在后续的学习中涉及到,这张图大家先了解下(图是具体自己实际操作和网上大家分享的,自己总结的,如果有理解错误的,请大家及时指出),通过了解git文件管理结构,我们能区分git add、git commit命令的各自的作用,以及理解git commit会只提交最后一次git add命令提交的文件改动到本地仓库的原因。
4. git删除文件
创建一个格式文件,并提交到git仓库中,如图:
从git上删除一个文件:
第一步,删除本地文件 rm
第二步,删除git上文件 git rm
第三步,提交更改
上面的操作我们会发现,没有执行“git add”,笔者的理解是提交stage区的操作应该不只有“git add”,“ git rm ”操作应该也是提交stage区的操作,至于还有没有其他操作,笔者限于时间没有去详细了解,后续有机会会单独总结,也请大家有了解的,可以分享出来。
二.基于本地仓库进行撤销
1. 本地文件撤销(修改文件内容未执行git add命令)
使用“git checkout -- ”来撤销相关的修改,如图:
2. 暂存区进行撤销(已经执行了git add命令)
第一步:执行“git reset HEAD ”命令,来撤销移交到暂存区的数据
第二步:执行“git checkout -- ”撤销本地文件的相关修改,如图:
3. 删除文件撤销
只删除本地文件(没有执行git rm ),应该很简单也是执行“git checkout -- [file]”
三.总结
1. 新的git命令
git rm
git checkout --
git reset HEAD
2. git本地管理文件空间的方式
理解git管理文件的方式,这样能帮助我们理解git命令
上一节:GIt本地相关操作(一) 下一节:Git连接远端仓库