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

最近在学习git,对git也有了新的认识,写一些总结,文章基本总结于 Pro 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 对待数据更像是一个 快照流

三种状态

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 

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

撤消对文件的修改

git checkout -- 

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

你可能感兴趣的:(git)