| 1 |
工作区(workspace) 程序员进行开发改动的地方,是你当前看到的,也是最新的。平常我们开发就是拷贝远程仓库中的一个分支,基于该分支进行开发。在开发过程中就是对工作区的操作。 |
|---|---|
| 2 |
暂存区(index): .git目录下的index文件, 暂存区会记录 git add 添加文件的相关信息(文件名、大小、timestamp…),不保存文件实体, 通过id指向每个文件实体。可以使用 git status 查看暂存区的状态。暂存区标记了你当前工作区中,哪些内容是被git管理的。当你完成某个需求或功能后需要提交到远程仓库,那么第一步就是通过 git add 先提交到暂存区,被git管理。 |
| 3 |
本地仓库(repository): 保存了对象被提交 过的各个版本,比起工作区和暂存区的内容,它要更旧一些。git commit 后同步index的目录树到本地仓库,方便从下一步通过 git push 同步本地仓库与远程仓库的同步。 |
| 4 |
远程仓库(remote): 远程仓库的内容可能被分布在多个地点的处于协作关系的本地仓库修改,因此它可能与本地仓库同步,也可能不同步,但是它的内容是最旧的。 |
常用命令举例:
| 用处 | 命令 | 说明 |
|---|---|---|
| 从服务器克隆代码 | git clone | |
| 提交修改文件 | git add readme.txt | |
| 提交日志 | git commit -m "modify something" | |
| 查询日志 | git log | |
| 对比提交的差异 | git diff --stat | |
| 比较上次提交commit和上上次提交的差别 | git diff HEAD^ HEAD | |
| 根据两次提交号对比差别 | git diff SHA1 SHA2 | |
| 回滚到上一个版本 | git reset --hard HEAD^ | |
| 指定commitid来回滚 | git reset --hard 1881c567d | |
| 查询commit 记录 | git reflog | |
| 分支类操作 | ||
| 创建DEV 分支 | git checkout -b dev | 相当于两条命令,创建分支,切换分支 git branch dev + git checkout dev |
| 查看当前分支 | git branch | |
| 将dev分支内容更新到master分支 | git checkout master + git merge dev | 先切换到master分支,然后将dev内容merge到master分支上 |
| 删除dev分支 | git branch -d dev | |



