工作区-(暂存区)-本地仓库-远程仓库
1. 基本操作

2. 工作区文件状态转换

- 已追踪状态:纳入版本控制,【已修改/未修改/已暂存】状态
注: 经克隆下来的仓库处于:【已跟踪(未修改)】状态 - 未追踪状态:未被纳入版本控制。
注:例如经克隆下来的仓库,在仓库添加一个文件,该文件处于未跟踪- 未跟踪的文件经过git add命令转换到【已跟踪】(已暂存)
- 未修改的文件经过【修改】—>【已修改】
- 已修改的文件经过git add命令转换到【已暂存】
- 已暂存的文件经过git commit命令转换到【未修改】
- 未修改的文件经过git rm 命令转换到【未跟踪】, 文件被删除。
3. 分支相关操作
Git branch -a 查看所有分支,HEAD指向
Git checkout 分支名 ,切换分支
git status 查看当前分支状态
Git reflog 历史操作s
Git merge 合并远程和本地仓库的冲突
git clone -b 分支名 克隆指定仓库的分支到本地
3.1 克隆指定仓库分支,修改后再上传到该分支
首先将指定分支克隆下来:
git clone -b <分支名> <url>.git
其次新建一个本地分支并与远程分支关联,同时切换到本地分支:
git checkout -b <本地分支名> origin/<远程分支名>
此时,开始修改克隆下来的分支文件,修改好以后,将当前目录添加至缓冲区
git add . # 添加新增的、修改的文件
或者
git add -A # 添加新增的、修改的、删除的文件
接下来将缓存区的目录提交至本地仓库
git commit -m <"修改的注释">
最后将本地仓库push到远程仓库:
git push origin <远程仓库名>
4. Git 撤销commit 方法
Git revert (还原某个commit, 但留下还原记录),其基本用法为,其中 -n 表示,表示revert以后需要重新提交一个commit信息再推送,若不使用 -n 则会弹出vim编辑commit注释。
git revert -n <commit-id>假如有一条commit线,
graph LR; subgraph flow A-->B-->C end上方的revert命令中(可通过git log命令查看)为B的id,则执行以上命令后,commit线变为以下
graph LR; subgraph flow A-->B-->C-->D end subgraph pointer HEAD-->master end master-->DGit reset (整段commit还原,不留记录,其修改HEAD指针的指向位置。
git reset --hard <commit-id>变为之前的commit-id对应版本)。适用于只想恢复到之前某个提交的版本,后面的都不要了,用commit图表示如下,还是上面的commit线,假如需要回退到A版本,将上面的commit-id设为A,执行命令后变为如下:
graph LR; subgraph flow A end subgraph pointer HEAD-->master-->A end