图解腾讯云Coding代码管理中,git命令与各区域的关系

本文仅作为个人梳理,如有问题或疑问,还请批评指出,感谢支持~

1. 为什么

在进行Coding代码管理过程中,会涉及一些常用的GIT命令,而每个GIT命令都会涉及相应的区域。本文通过关系图的方式,对常用GIT命令及其涉及的区域进行梳理与展示,便于理清每个指令后代码移动至的区域,从而更加了解指令作用以及代码移动的过程

2. 做什么

将命令分成4类型,从而分别展示命令和区域的关系图,

命令分类包括:推送、拉取、修改、多分支。

区域包括:工作区、暂存区、本地仓库、远端仓库

其中命令分类如下

1) 推送

代码推送到远端过程中,使用的命令,比较常用,包括:status、add、commit、push

2) 拉取

将代码从远端拉取下来的相关命令,包括:fetch、pull、clone

3) 修改

代码在本端进行修改的相关命令,比如代码比较、撤销、删除等,包括:checkout --、diff(diff、diff HEAD、diff --cached)、reset(reset -- file、reset HEAD file、reset --hard、reset --soft)、rm

4) 多分支

涉及多个分支的相关命令,比如merge的不同分支或拉取合并、checkout branch切换分支、stash切换分支前保存修改,命令包括:merge、checkout branch/commitID、stash(stash、stash pop、stash pop --index)

3. 怎么样

下面对4种命令分类及其区域关系图进行展示。

3.1 推送和拉取

推送和拉取分类部分GIT命令和区域的关系图如下,补充如下说明文字:

git status:用于查看工作区和暂存区状态,判断当前内容是否已被放到暂存区以及是否已被提交

git pull:将远端仓库同步到本地仓库和工作区

git fetch:将远端仓库拉取到本地,但是不进行同步,需要使用merge等命令进行同步更新至本地和工作区

3.2 修改

修改分类部分GIT命令和区域的关系图如下,补充如下说明文字:

git diff XXX:diff系列比较不同区域之间的文件差异,也可以比较不同branch/commitID差异,这里暂未列出

git reset HEAD:add的被撤销,工作区也看不到

git reset --hard:commit之前,工作区和暂存区改动全部废弃,找不到,在commit之后会产生不同步问题

git reset --soft:commit之后的都会撤回到暂存区,可继续commit

3.3 多分支

多分支分类部分GIT命令和区域的关系图如下,补充如下说明文字:

checkout branch/commitID:将某branch或提交commitID切换到工作区中

stash:在切换分支前,将未提交的工作区和暂存区修改保存

stash pop:只恢复工作区,不恢复暂存区

stash pop --index:恢复工作和暂存区

merge:pull后的merge冲突,冲突的文件

4. 小结

在Coding代码管理过程中,GIT命令较多,做到知其然也知所以然。理清GIT命令和各作用区域的关系,以及代码移动的过程,可以提高GIT命令的理解程度和使用效率,也可以避免出现操作错误,导致代码丢失。

本文仅作为个人梳理,如有问题或疑问,还请批评指出,感谢支持~