Git本地相关操作(二)

218 阅读4分钟

之前的文章我们学习了git本地操作相关的命令:git initgit statusgit add git commit (-m )git diffgit 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文件的内容显示

修改introduce.txt文件以后,我们执行git statusgit diffgit add ,如图:

执行git命令显示

我们继续对introduce.txt文件进行修改,重复上述步骤,修改:

对introduce.txt文件进行修改

执行git statusgit diffgit add 命令,如图:

再次执行git命令显示
再次执行git命令的结果显示

现在我们执行git commit (-m )命令,如图:

git commit提交修改
我们会发现,最后一次编辑的内容并没有随着git commit 执行而提交到本地仓库中去

2. 小结

我们操作的大体流程是:修改--->git add-->再次修改---->git commit
git commit命令,会只提交最近一次git add 命令提交的文件修改内容到本地仓库中,即使中间有多次修改,只以最后一次执行git add命令所提交的修改内容为准,本文中笔者使用的是同一个文件,不同文件也是如此。


3. git文件存储结构

git管理文件总共分为三块空间:工作区、本地版本库、缓冲区,远程仓库
工作区:本地电脑的上的一个普通目录
本地版本库:git在本地的一个管理文件的文件仓库
缓冲区:git本地仓库的一部分,用于存储要提交到本地仓库的文件修改数据
远程仓库:远端存储git管理的文件仓库,可以多个本地仓库进行连接,通过git pushgit pull与本地仓库进行文件同步
具体关系如图:

git文件存储结构说明

git add把文件添加到stage缓存区,git commit把缓存的数据再提交到当前使用到的分支,图中dev和远程仓库我们在后续的学习中涉及到,这张图大家先了解下(图是具体自己实际操作和网上大家分享的,自己总结的,如果有理解错误的,请大家及时指出),通过了解git文件管理结构,我们能区分git addgit commit命令的各自的作用,以及理解git commit会只提交最后一次git add命令提交的文件改动到本地仓库的原因。

4. git删除文件

创建一个格式文件,并提交到git仓库中,如图:

git删除文件

从git上删除一个文件:
第一步,删除本地文件 rm
第二步,删除git上文件 git rm
第三步,提交更改
git删除文件提交

上面的操作我们会发现,没有执行“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]

删除文件撤销
删除文件提交到stage区(执行了git rm ),撤销
删除文件提交到stage区

三.总结

1. 新的git命令

git rm
git checkout --
git reset HEAD

2. git本地管理文件空间的方式

理解git管理文件的方式,这样能帮助我们理解git命令


上一节:GIt本地相关操作(一) 下一节:Git连接远端仓库