基础

Git 配置

1
2
git config --global user.name "Your Name"
git config --global user.email "email@example.com"

git config 命令的 --global 参数,表明这台机器上的所有 Git 仓库都会使用这个配置,也可以对某个仓库指定不同的用户名和邮箱地址。

检查配置

1
git config --list

工作区、暂存区和版本库的区别

  • 工作区:在电脑里能看到的目录;
  • 版本库:在工作区有一个隐藏目录 .git,是 Git 的版本库。

Git 的版本库中存了很多东西,其中最重要的就是称为 stage(或者称为 index)的暂存区,还有 Git 自动创建的 master,以及指向 master 的指针 HEAD。

git-stage

进一步解释一些命令:

  • git add 实际上是把文件添加到暂存区
  • git commit 实际上是把暂存区的所有内容提交到当前分支

撤销修改

丢弃工作区的修改

1
2
3
$ git checkout -- <file>
如
$ git checkout -- README.md

该命令是指将文件在工作区的修改全部撤销,这里有两种情况:

  1. 一种是 file 自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
  2. 一种是 file 已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

总之,就是让这个文件回到最近一次 git commit 前暂存区的状态。

丢弃暂存区的修改

1
2
3
$ git reset HEAD <file>
如:
$ git reset HEAD README.md

该命令将已经 add 到暂存区的修改撤销掉(unstage),重新放回工作区

克隆仓库

1
git clone https://github.com/user/repositoryname.git

删除文件

1
git rm <file>

git rm <file> 相当于执行

1
2
rm <file>
git add <file>

删除文件解释

Q:比如执行了 rm text.txt 误删了怎么恢复?

A:执行 git checkout -- text.txt 把暂存区的东西重新写回工作区就行了

Q:如果执行了 git rm text.txt 我们会发现暂存区的 text.txt 也删除了,怎么恢复?

A:先撤销暂存区修改,重新放回暂存区,然后再从暂存区写回到工作区

1
2
git reset HEAD text.txt
git checkout -- text.txt

Q:如果真的想从版本库里面删除文件怎么做?

A:执行 git commit -m "delete text.txt",提交后最新的版本库将不包含这个文件

查看本次修改内容

git show