最近在学习git,对git也有了新的认识,写一些总结,文章基本总结于 Pro Gitcss
本章主要介绍一些git的基本知识,后续继续跟进。git
git 自带一个 git config 的工具来帮助设置控制 git 外观和行为的配置变量。这些变量存储在三个不一样的位置:数据库
例如:安全
git config --global user.name "yourname" // 设置用户名
git config --global alias.co checkout // 设置快捷键
注: 每个级别覆盖上一级别的配置,git config --list 列出全部 Git配置工具
直接记录快照,而非差别比较学习
git 更像是把数据看做是对小型文件系统的一组快照。 每次你提交更新,或在 git 中保存项目状态时,它主要对当时的所有文件制做一个快照并保存这个快照的索引。 为了高效,若是文件没有修改,git 再也不从新存储该文件,而是只保留一个连接指向以前存储的文件。 git 对待数据更像是一个 快照流。url
三种状态spa
git 有三种状态,你的文件可能处于其中之一:3d
已提交(committed)数据已经安全的保存在本地数据库中 已修改(modified)修改了文件,但还没保存到数据库中 已暂存(staged)对一个已修改文件的当前版本作了标记,使之包含在下次提交的快照中
三个工做区域的概念:code
git仓库:保存项目的元数据和对象数据库的地方 工做目录:对项目的某个版本独立提取出来的内容。这些从 git 仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。 暂存区域:是一个文件,保存了下次将提交的文件列表信息,通常在git仓库目录中
git 工做流程:
1. 在工做目录中修改文件。 2. 暂存文件,将文件的快照放入暂存区域。 3. 提交更新,找到暂存区域的文件,将快照永久性存储到 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>
本期就先写这么多,下一期会写关于分支的知识,敬请期待