本文仅作为个人梳理,如有问题或疑问,还请批评指出,感谢支持~
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命令的理解程度和使用效率,也可以避免出现操作错误,导致代码丢失。
本文仅作为个人梳理,如有问题或疑问,还请批评指出,感谢支持~