git简介
远程仓库
本地仓库
缓存区
工作区
git的仓库分为远程仓库和本地仓库,作为分布式的管理系统,本地仓库和远程仓库都可以进行版本管理。此外在进行开发时,还有一个本地工作区和缓存区。
git版本切换
git版本切换示意图如下
git的版本管理是一个链表的结构,在版本checkout的时候,会读取并覆盖本地缓存区和工作区。读取并覆盖一般有三种情况。
情况1 | 情况2 | 情况3 |
---|---|---|
当前状态与切换后的状态相同,无变化 | 当前状态存在但下一状态不存在,会读取并删除 | 当前状态不存在,但下一状态存在,会增加该文件 |
笔者在开发时未提交本地代码到分支就切换了分支,并没有stash,导致本地的代码被覆盖,切回原有分支时代码消失了。正确的姿势应该是提交本地代码后,切换分支解决冲突,或者暂存未提交代码。
本文参考博文:https://blog.csdn.net/zssureqh/article/details/51712972