## Git

- Git的概念
  开源的分布式版本控制系统管理
- 三个区域的概念

​	**工作区**：在电脑中可以看到的目录

​	**暂存区**：临时存储区域，保留文件快照，提交之前保存在此。

~~~ 
git add filename       # 将单个文件添加到暂存区
git add .              # 将工作区中的所有修改添加到暂存区
git status             # 查看哪些文件在暂存区中
git commit -m "name"
~~~

​	**版本库**：每次提交都会保存新的快照，不可变。存放	在.git目录下index文件

- 仓库的概念
  * 存放所有文件和历史记录

- 节点的概念

  - （提交commit）是仓库中项目某个事件点快照，生成40位哈希值

- 分支的概念

  - 开发过程中独立的分流线，本质是一个指向某个可提交的移动指针

  ~~~ bash
  git branch name    #创建分支
  git checkout name	#切换分支
  或/
  git switch  name
  
  git merge new_name   #
  ~~~

  

  

| 命令             | 说明                                     |
| ---------------- | ---------------------------------------- |
| `git init`       | 初始化仓库                               |
| `git clone`      | 拷贝一份远程仓库，也就是下载一个项目。   |
| `git add`        | 添加文件到暂存区                         |
| `git status`     | 查看仓库当前的状态，显示有变更的文件。   |
| `git diff`       | 比较文件的不同，即暂存区和工作区的差异。 |
| `git difftool`   | 使用外部差异工具查看和比较文件的更改。   |
| `git range-diff` | 比较两个提交范围之间的差异。             |
| `git commit`     | 提交暂存区到本地仓库。                   |
| `git reset`      | 回退版本。                               |
| `git rm`         | 将文件从暂存区和工作区中删除。           |
| `git mv`         | 移动或重命名工作区文件。                 |
| `git notes`      | 添加注释。                               |
| `git checkout`   | 分支切换。                               |
|                  |                                          |

# sourceTree



