Git 基础知识

PPG007 ... 2021-12-26 About 3 min

# Git 基础知识

# 创建版本库

版本库可以理解为一个目录,这个目录里所有的文件都可以被 Git 管理起来,每个文件的修改、删除都能被 Git 跟踪,任何时刻都可以追踪历史,或者还原。

要创建版本库,在一个目录下使用如下命令:

git init
1

这样这个目录就成为了一个版本库,其中有个隐藏目录 .git,其中保存着这个仓库的一些信息。

# 添加文件到版本库

注意:所有的版本控制系统只能跟踪文本文件的改动,二进制文件无法跟踪变化。

现在创建一个文件 README.txt 文件,使用下面的命令将文件添加到暂存区:

git add README.txt
1

接着,执行下面的命令将暂存区中的文件提交给仓库:

# -m 用来指定这次提交的信息
git commit -m 'init'
1
2

Git 使用 addcommit 两步实现添加文件,其中 commit 可以一次提交很多文件,所以可以多次 add 不同内容然后一起 commit

# 查看仓库状态和提交历史

使用 git status 命令可以查看当前仓库的状态,如果想要查看未提交的文件和仓库中文件的区别可以使用 git diff <file> 命令查看修改的内容。

使用 git log 命令查看过往的提交历史记录,添加 --graph 参数可以以图形的形式看到提交记录。

# 工作区和暂存区

  • 工作区:

    工作区就是在电脑中可以看到的目录。

  • 版本库:

    工作区中有一个隐藏目录 .git,这就是 Git 的版本库。

  • 暂存区:

    暂存区就存在于版本库中,此外版本库中还有 Git自动创建的第一个分支 master,以及指向 master 的一个指针 HEAD。

    git add 命令将文件添加到了暂存区,然后 git commit 提交暂存区的所有内容到当前分支的仓库,即将需要提交的文件修改都放到暂存区然后一次性提交暂存区中的所有修改,执行完 git commit 命令后,暂存区会被清空。

# 撤销修改

  • 如果要丢弃的修改还存在工作区中,可以使用 git checkout -- <file> 撤销修改,Git 会使用版本库中最新的版本做一次替换。
  • 如果要丢弃的修改已经进入暂存区,可以使用 git reset HEAD <file> 将暂存区的修改撤销重新放回工作区,然后使用上面的命令即可撤销。
  • 如果要丢弃的修改已经被提交到了版本库中,可以使用下面两个方法完成撤销:
    • 使用 git reset --hard <commit> 回到某次提交并丢弃后面的所有提交。
    • 使用 git revert <commit> 通过反向操作撤销某次修改并形成一个新的 commit,常用于希望撤销某次修改单不想丢弃后面的修改的情况。
  • 如果在撤销修改后,又希望回到后面的某个版本,使用 git log 无法看到丢弃修改后面的 commit id,可以使用 git reflog 查看命令历史,然后可以回退。

# 删除文件

一般情况下会使用 rm 命令删除某些文件,此时 Git 知道有文件被删除了,工作区和版本库不一致了,此时有两种情况:

  • 确实要删除这些文件。

    使用 git rm <file> 命令删掉,然后 git commit

  • 意外删除。

    使用 git checkout -- <file> 命令恢复到版本库的最新版本,但是会丢失未提交的修改。

Last update: December 26, 2021 04:26
Contributors: PPG007