最近在学习git,对git也有了新的认识,写一些总结,文章基本总结于 Pro Git
本章主要介绍一些git的基本知识,后续继续跟进。
初次运行 Git 前的配置
git 自带一个 git config 的工具来帮助设置控制 git 外观和行为的配置变量。这些变量存储在三个不同的位置:
- /etc/gitconfig 文件: 包含系统上每一个用户及他们仓库的通用配置。 如果使用带有 --system 选项的 git config 时,它会从此文件读写配置变量。
- ~/.gitconfig 或 ~/.config/git/config 文件:只针对当前用户。 可以传递 --global 选项让 Git 读写此文件。
- 当前使用仓库的 Git 目录中的 config 文件(就是 .git/config):针对该仓库。
例如:
git config --global user.name "yourname" // 设置用户名
git config --global alias.co checkout // 设置快捷键
注: 每一个级别覆盖上一级别的配置,git config --list 列出所有 Git配置
git 基础
直接记录快照,而非差异比较
git 更像是把数据看作是对小型文件系统的一组快照。 每次你提交更新,或在 git 中保存项目状态时,它主要对当时的全部文件制作一个快照并保存这个快照的索引。 为了高效,如果文件没有修改,git 不再重新存储该文件,而是只保留一个链接指向之前存储的文件。 git 对待数据更像是一个 快照流。
三种状态
git 有三种状态,你的文件可能处于其中之一:
已提交(committed)数据已经安全的保存在本地数据库中
已修改(modified)修改了文件,但还没保存到数据库中
已暂存(staged)对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中
三个工作区域的概念:
git仓库:保存项目的元数据和对象数据库的地方
工作目录:对项目的某个版本独立提取出来的内容。这些从 git 仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。
暂存区域:是一个文件,保存了下次将提交的文件列表信息,一般在git仓库目录中
git 工作流程:
1. 在工作目录中修改文件。
2. 暂存文件,将文件的快照放入暂存区域。
3. 提交更新,找到暂存区域的文件,将快照永久性存储到 git 仓库目录
git基本操作
在现有目录中初始化仓库
git init
克隆现有的仓库
git clone [url]
文件状态
git status
文件状态切换:
新建README(Untracked) => git add README(staged) => git commit(unmodified)
状态简览
git status -s
?? 新添加的未跟踪文件
A 新添加到暂存区中的文件
M 修改过的文件 : 出现在靠左边的 M 表示该文件被修改了并放入了暂存区; 出现在右边的 M 表示该文件被修改了但是还没放入暂存区;
跳过使用暂存区域
git commit -a -m ""
移除文件
从 git 中移除某个文件 git rm
移动文件
git mv file_from file_to
查看提交历史
git log
注:后续许多操作都会基于log来进行
取消暂存的文件
暂存区域 git reset HEAD <file>
注: 虽然在调用时加上 --hard 选项可以令 git reset 成为一个危险的命令(译注:可能导致工作目录中所有当前进度丢失!),但本例中工作目录内的文件并不会被修改。 不加选项地调用 git reset 并不危险 — 它只会修改暂存区域。
撤消对文件的修改
git checkout -- <file>
本期就先写这么多,下一期会写关于分支的知识,敬请期待
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。