Git Tool使用指南

Git

Git安装

sudo apt install git

Git配置

Git 提供了一个叫做 git config 的工具,专门用来配置或读取相应的工作环境变量。这些环境变量,决定了 Git 在各个环节的具体工作方式和行为。这些变量可以存放在以下三个不同的地方:

  • /etc/gitconfig 文件:系统中对所有用户都普遍适用的配置。若使用 git config 时用 --system 选项,读写的就是这个文件。
  • ~/.gitconfig 文件:用户目录下的配置文件只适用于该用户。若使用 git config 时用 --global 选项,读写的就是这个文件。
  • 当前项目的 Git 目录中的配置文件(也就是工作目录中的 .git/config 文件):只要去掉--global 选项重新配置即可,这里的配置仅仅针对当前项目有效。每一个级别的配置都会覆盖上层的相同配置,所以 .git/config 里的配置会覆盖 /etc/gitconfig 中的同名变量。
git config --global user.name ""
git config --global user.email ""

暂存区

将文件往 Git 版本仓库中添加的时候,是分两步执行的:

  1. git add把文件添加进去,实际上就是把文件修改添加到暂存区;

  2. git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

Git使用

有些时候,在必须把某些文件放到 Git 工作目录中,但又不能提交它们时,比如保存了数据库密码的配置文件等等。我们就需要在工作目录下创建一个.gitignore文件,然后把要忽略的文件名填进去,这样 Git 就会自动忽略这些文件了。

有哪些文件是需要忽略的呢?有以下几种:

  1. 操作系统自动生成的文件,比如缩略图等;
  2. 编译生成的中间文件、可执行文件,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没有必要放进版本仓库;
  3. 带有敏感信息的配置文件,比如存放数据库密码的配置文件等。

基础使用

提交

git commit在当前的分支下提交修改记录,如果没有修改分支的情况下,位于master分支;

Git Tool使用指南_第1张图片

创建分支

git branch newImage创建newImage分支,但是在没有切换分支的情况下,仍然处于master分支;

切换分支

git checkout newImage切换分支的命令,切换到newImage分支;

Git Tool使用指南_第2张图片

合并

git merge bugFixbugFix合并到master

merge是将其后所指定的节点合并到HEAD指向的节点,并在HEAD指向的节点下延长
Git Tool使用指南_第3张图片
git rebase,Rebase 实际上就是取出一系列的提交记录,“复制”它们,然后在另外一个地方逐个的放下去;Rebase 的优势就是可以创造更线性的提交历史。

  1. 新建并切换到 bugFix 分支

    git branch bugFix; git checkout bugFix

  2. 提交一次

    git commit

  3. 切换回 master 分支再提交一次

    git checkout master; git commit

  4. 再次切换到 bugFix 分支,rebasemaster

    git checkout bugFix; git rebase master
    Git Tool使用指南_第4张图片

进阶使用

在提交树上移动

bugFix 分支中分离出 HEAD 并让其指向一个提交记录。

git checkout C4
Git Tool使用指南_第5张图片

相对引用

通过指定提交记录哈希值的方式在 Git 中移动不太方便。在实际应用时,并没有像本程序中这么漂亮的可视化提交树供你参考,所以你就不得不用 git log 来查查看提交记录的哈希值。通过哈希值指定提交记录很不方便,所以 Git 引入了相对引用。使用相对引用的话,你就可以从一个易于记忆的地方(比如 bugFix 分支或 HEAD)开始计算。

相对引用非常给力,这里我介绍两个简单的用法:

  • 使用 ^ 向上移动 1 个提交记录
  • 使用 ~ 向上移动多个提交记录,如 ~3

首先看看操作符 (^)。把这个符号加在引用名称的后面,表示让 Git 寻找指定提交记录的父提交。所以 master^ 相当于“master 的父节点”;master^^master 的第二个父节点。

git checkout HEAD~4
Git Tool使用指南_第6张图片
git checkout bugFix^
Git Tool使用指南_第7张图片

强制修改分支位置

可以直接使用 -f 选项让分支指向另一个提交。例如:

git branch -f master HEAD~3

Git Tool使用指南_第8张图片

上面的命令会将 master 分支强制指向 HEAD 的第 3 级父提交。
Git Tool使用指南_第9张图片

git branch -f master C6
git checkout HEAD^
git branch -f bugFix HEAD^

Git Tool使用指南_第10张图片

变更撤销

主要有两种方法用来撤销变更:git resetgit revert

git reset 向上移动分支,原来指向的提交记录就跟从来没有提交过一样。

git reset HEAD~1
Git Tool使用指南_第11张图片
Git 把 master 分支移回到 C1;现在我们的本地代码库根本就不知道有 C2 这个提交了。(注:在reset后, C2 所做的变更还在,但是处于未加入暂存区状态。)

虽然在你的本地分支中使用 git reset 很方便,但是这种“改写历史”的方法对大家一起使用的远程分支是无效的哦!为了撤销更改并分享给别人,我们需要使用 git revert

git revert HEAD

你可能感兴趣的:(git,工具,git)