Git 入门

内容纲要

查看【Git】专题可浏览更多内容

为什么使用版本控制系统以及 Git

通过搜索引擎搜索「版本控制系统」与「Git」,在看了简介后可能依旧云里雾里,那么干脆举个例子,比如在大学时写论文和导师的讨论过程中会不断修改你的论文,为了防止改着改着又改回到之前的版本,你可能使用「改名大法」论文文件夹变成了这样:

  • 论文第一稿;
  • 论文第二稿;
  • 论文正式稿;
  • 论文一改;
  • 论文二改;
  • 论文不再改;
  • 论文最终版;
  • 论文不再改;
  • 论文真的不再改;
    ...

在使用「改名大法」搞出十几个版本后,你还能准确想起哪个版本的改动有哪些,又是因为什么而改动吗?

而 Git 这样的版本控制系统就可以帮助你:

  • 记录每次修改的时间、作者(如果多人协作这很重要不是吗?是的还支持多人协作)、改动的内容(当然文件格式要受支持)、为什么要进行这样的改动;
  • 对比几个版本之间的不同,回到指定的版本,撤销当前的修改;
  • 多人协作可以方便的各自处理各自的部分,例如不需要当处理的是同一个文件时你先等我改好上半部分再发给你改好下半部分再发给我等等;
  • 因为是分布式的,所以和你有同个项目的人都拥有完整的项目,也就是说当你的项目损毁也可以找你的团队成员获取回完整项目;

等等...

那为什么是 Git 呢?Git 官方网站的简介:

Git 是最流行的自由和开源的分布式版本控制系统,旨在以速度和效率处理从小型到非常大的项目。
Git 易于学习,占用空间小,性能快如闪电。它优于 SCM 工具,如 Subversion、CVS、Perforce 和 ClearCase,具有廉价的本地分支、方便的暂存区和多个工作流等功能。

你可能会疑惑什么是廉价的本地分支?方便的暂存区?多个工作流?这都是些什么?

所以一开始只需要知道 Git 是开源免费的,光是免费这条就挺有吸引力了。

获取 Git

在 Git 官网可以获取下载及文档:

安装完成后输入命令 git --version 能看到返回版本信息就表示安装成功了,使用 git -h 命令可以获取帮助信息。

最小配置

安装完 Git 之后,要做的第一件事就是设置你的用户名和邮件地址。 这一点很重要,因为每一个 Git 提交都会使用这些信息,它们会写入到你的每一次提交中。

macOS 或 Linux 用户可以使用自带的「终端」、Windows 用户可以使用「Git Bash」或「Windows Terminal」,然后输入两条命令:

# --local 只针对某个仓库;
# --global 针对当前系统用户的所有仓库;
# --system 针对系统上所有用户的仓库(极少使用);
git config --global user.name "John Doe"
git config --global user.email [email protected]

在配置完成用户信息后,可以列出配置信息进行查看:

git config --list --global

如果配置错误了可以重新使用上述两条命令输入正确的用户信息,旧的用户信息就会被覆盖了。

获取仓库

仓库「repository」有分「local」以及「remote」两种类型,在本地计算机上的就是「local」,在远程服务器上的就是「remote」。

新建本地仓库

新建 Git 本地仓库有两种方式:

  1. 新建一个项目文件夹并使用 Git 管理;
  2. 将一个已经存在的项目文件夹使用 Git 进行管理;

假设说打算写一写杂文集,这个杂文集项目的文件夹就叫做 article 吧,那么使用命令:

# git init <仓库名>
git init article
提示:使用 'master' 作为初始分支的名称。这个默认分支名称可能会更改。要在新仓库中
提示:配置使用初始分支名,并消除这条警告,请执行:
提示:
提示: git config --global init.defaultBranch <名称>
提示:
提示:除了 'master' 之外,通常选定的名字有 'main'、'trunk' 和 'development'。
提示:可以通过以下命令重命名刚创建的分支:
提示:
提示: git branch -m <name>
已初始化空的 Git 仓库于 /Users/toor/Documents/article/.git/

或者 article 杂文集文件夹已经存在了,现在想纳入 Git 管理:

# 如果是一个已经存在的项目要使用 Git 管理,首先使用 cd 命令进入该目录:
cd article
# 然后初始化 Git
git init

💡 如果针对这个项目想要使用不同的作者名称和邮箱怎么办?进入项目后使用命令

git config --local user.name "Tom"
git config --local user.email [email protected]

获取远程仓库

假设现在已经有一个存放在远程服务器中的 Git 仓库,只需要获得项目远程仓库 的 URL 地址就可以克隆到本地。

获取远程仓库使用克隆功能:

# git clone <url>
git clone https://example.com/git-repo.git

常见的 URL:

如上示例就会创建名为 git-repo 的文件夹,如果你想直接克隆到当前目录而不是创建一个以仓库名称为名的子目录,可以在命令后面加上 .,如:

git clone https://example.com/git-repo.git .