git学习系列(一)---- git的基础知识

最近在学习git,对git也有了新的认识,写一些总结,文章基本总结于 Pro Gitcss

本章主要介绍一些git的基本知识,后续继续跟进。git

初次运行 Git 前的配置

git 自带一个 git config 的工具来帮助设置控制 git 外观和行为的配置变量。这些变量存储在三个不一样的位置:数据库

  1. /etc/gitconfig 文件: 包含系统上每个用户及他们仓库的通用配置。 若是使用带有 --system 选项的 git config 时,它会今后文件读写配置变量。
  2. ~/.gitconfig 或 ~/.config/git/config 文件:只针对当前用户。 能够传递 --global 选项让 Git 读写此文件。
  3. 当前使用仓库的 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 对待数据更像是一个 快照流url

clipboard.png

三种状态spa

git 有三种状态,你的文件可能处于其中之一:3d

已提交(committed)数据已经安全的保存在本地数据库中
已修改(modified)修改了文件,但还没保存到数据库中
已暂存(staged)对一个已修改文件的当前版本作了标记,使之包含在下次提交的快照中

三个工做区域的概念:code

git仓库:保存项目的元数据和对象数据库的地方 
工做目录:对项目的某个版本独立提取出来的内容。这些从 git 仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。
暂存区域:是一个文件,保存了下次将提交的文件列表信息,通常在git仓库目录中

clipboard.png

git 工做流程:

1. 在工做目录中修改文件。
2. 暂存文件,将文件的快照放入暂存区域。
3. 提交更新,找到暂存区域的文件,将快照永久性存储到 git 仓库目录

git基本操做

在现有目录中初始化仓库

git init

克隆现有的仓库

git clone [url]

文件状态

git status

文件状态切换:
新建README(Untracked) => git add README(staged) => git commit(unmodified)

clipboard.png

状态简览

git status -s

clipboard.png

??  新添加的未跟踪文件
A 新添加到暂存区中的文件
M 修改过的文件 : 出如今靠左边的 M 表示该文件被修改了并放入了暂存区; 出如今右边的 M 表示该文件被修改了可是还没放入暂存区;

跳过使用暂存区域

git commit -a -m ""

移除文件

从 git 中移除某个文件 git rm

移动文件

git mv file_from file_to

查看提交历史

git log

clipboard.png

注:后续许多操做都会基于log来进行

取消暂存的文件

暂存区域  git reset HEAD <file>

注: 虽然在调用时加上 --hard 选项能够令 git reset 成为一个危险的命令(译注:可能致使工做目录中全部当前进度丢失!),但本例中工做目录内的文件并不会被修改。 不加选项地调用 git reset 并不危险 — 它只会修改暂存区域。

撤消对文件的修改

git checkout -- <file>

本期就先写这么多,下一期会写关于分支的知识,敬请期待