2、git 三态 、安装、 配置文件、 基本命令

【重点】
再次强调前面一篇博客中的重点

三种状态
Git 有三种状态,你的文件可能处
于其中之一:已提交(committed)已修改(modified)已暂存(staged)

已提交:表示数据已经安全的保存在本地数据库中。
已修改: 表示修改了文件,但还没保存到数据库中。
已暂存:表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。

由此引入 Git 项目的三个工作区域的概念:Git 仓库、工作目录以及暂存区域。
这里写图片描述
Git 仓库目录是 Git 用来保存项目的元数据和对象数据库的地方。 这是 Git 中最重要的部分,从其它计算机克隆仓库时,拷贝的就是这里的数据。

工作目录是对项目的某个版本独立提取出来的内容。 这些从 Git 仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。

暂存区域是一个文件,保存了下次将提交的文件列表信息,一般在 Git 仓库目录中。 有时候也被称作`‘索引’’,不过一般说法还是叫暂存区域。

基本的 Git 工作流程如下:
1. 在工作目录中修改文件。
2. 暂存文件,将文件的快照放入暂存区域。
3. 提交更新,找到暂存区域的文件,将快照永久性存储到 Git 仓库目录。

git 安装
包下载:https://git-scm.com/

sudo yum install git
sudo apt-get install 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 的配置变量会覆盖 /etc/gitconfig 中的配置变量
在 Windows 系统中,Git 会查找 $HOME 目录下(一般情况下是 C:\Users\$USER)的 .gitconfig 文件。
Git 同样也会寻找 /etc/gitconfig 文件,但只限于 MSys 的根目录下,即安装 Git 时所选的目标位置。

用户信息
当安装完 Git 应该做的第一件事就是设置你的用户名称与邮件地址。 这样做很重要,因为每一个 Git 的提交都会
使用这些信息,并且它会写入到你的每一次提交中,不可更改:

$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
~/.gitconfig

这里写图片描述
文本编辑器
既然用户信息已经设置完毕,你可以配置默认文本编辑器了,当 Git 需要你输入信息时会调用它。 如果未配
置,Git 会使用操作系统默认的文本编辑器,通常是 Vim。 如果你想使用不同的文本编辑器,例如 Emacs,可以
这样做

git config --global core.editor vim
~/.gitconfig

检查配置信息
如果想要检查你的配置,可以使用 git config –list 命令来列出所有 Git 当时能找到的配置。

$ git config --list
user.name=John Doe
user.email=johndoe@example.com
color.status=auto
color.branch=auto
color.interactive=auto
color.diff=auto

你可能会看到重复的变量名,因为 Git 会从不同的文件中读取同一个配置(例如:/etc/gitconfig 与
~/.gitconfig)。 这种情况下,Git 会使用它找到的每一个变量的最后一个配置。
你可以通过输入 git config : 来检查 Git 的某一项配置

 git config user.name
John Doe

获取帮助

$ git help <verb>
$ git <verb> --help
$ man git-<verb>
 git help config

基本操作

获取 Git 仓库
有两种取得 Git 项目仓库的方法。 第一种是在现有项目或目录下导入所有文件到 Git 中; 第二种是从一个服务器克隆一个现有的 Git 仓库。
在现有目录中初始化仓库
如果你打算使用 Git 来对现有的项目进行管理,你只需要进入该项目目录并输入:

git init

克隆

git clone https://github.com/libgit2/libgit2
git clone https://github.com/libgit2/libgit2 mylibgit //修改本地项目名字

记录每次更新到仓库
现在我们手上有了一个真实项目的 Git 仓库,并从这个仓库中取出了所有文件的工作拷贝。 接下来,对这些文件做些修改,在完成了一个阶段的目标之后,提交本次更新到仓库。

请记住你工作目录下的每一个文件都不外乎这两种状态已跟踪或未跟踪
已跟踪的文件是指那些被纳入了版本控制的文件,在上一次快照中有它们的记录,在工作一段时间后,它们的状态可能处于未修改,已修改或已放入暂存区。 工作目录中除已跟踪文件以外的所有其它文件都属于未跟踪文件,它们既不存在于上次快照的记录中,也没有放入暂存区。 初次克隆某个仓库的时候,工作目录中的所有文件都属于已跟踪文件,并处于未修改状态。

编辑过某些文件之后,由于自上次提交后你对它们做了修改,Git 将它们标记为已修改文件。 我们逐步将这些修改过的文件放入暂存区,然后提交所有暂存了的修改,如此反复。所以使用 Git 时文件的生命周期如下
这里写图片描述
命令
git log——查看提交日志
git status——查看文件状态
git add 文件名称 —跟踪文件 ——-未跟踪—->已跟踪(untracked—->staged)
git commit -m “first commit”——已跟踪——>未修改(staged——>Unmodified)
修改未修改的文件 变成已修改的文件——未修改—–>已修改(Unmodified—–>Modified)
git add 文件名称 —跟踪文件 ——-未跟踪—->已跟踪(Modified—->staged)
git commit -m “scend commit”——已跟踪——>未修改(staged——>Unmodified)

git add 只是将文件暂存
三个功能:
(1)跟踪新文件
(2)将已跟踪的文件放到暂存区
(3)合并时把有冲突的文件标记为以解决)

git commit 将文件提交到 本地数据仓库中
(1)如果文件同时存在暂存区和非暂存区,提交commit只会把暂存区的文件提交,如果不commit 使用add 就会把最新的文件放到暂存区 (这样小心删除文件内容 ) 两个MM的情况
(2)提交 跳过 git add 添加 -a (已经跟踪过的文件,新文件不可以)
(3)-m 写提交信息

状态简览
git status 命令的输出十分详细,但其用语有些繁琐。 如果你使用 git status -s 命令或 git status
–short 命令,你将得到一种更为紧凑的格式输出。 运行 git status -s ,状态报告输出如下:

$ git status -s
M README
MM Rakefile                 两个MM的情况
A lib/git.rb
M lib/simplegit.rb
?? LICENSE.txt

新添加的未跟踪文件前面有 ?? 标记
新添加到暂存区中的文件前面有 A 标记
出现在右边的 M 表示该文件被修改了但是还没放入暂存区
出现在靠左边的 M 表示该文件被修改了并放入了暂存区

猜你喜欢

转载自blog.csdn.net/u014749668/article/details/81710182