章节 ▾ 第二版

2.1 Git 基础 - 获取 Git 仓库

如果你只想读一章就上手 Git,那就是这一章。本章涵盖了你需要做的绝大多数事情的所有基本命令,最终你会花费大量时间使用 Git。在本章结束时,你应该能够配置和初始化一个存储库,开始和停止跟踪文件,以及暂存和提交更改。我们还将向您展示如何设置 Git 以忽略某些文件和文件模式,如何快速轻松地撤消错误,如何浏览项目的历史记录以及查看提交之间的更改,以及如何从远程存储库推送和拉取。

获取 Git 仓库

您通常通过以下两种方式之一获得 Git 仓库

  1. 您可以将当前未在版本控制下的本地目录转换为 Git 仓库,或者

  2. 您可以从其他地方克隆现有的 Git 仓库。

在任何一种情况下,您最终都会在本地计算机上获得一个 Git 仓库,可以开始工作了。

在现有目录中初始化仓库

如果您有一个当前不在版本控制下的项目目录,并且您想开始使用 Git 控制它,您首先需要转到该项目的目录。如果您从未这样做过,它的外观会根据您运行的系统而有所不同

适用于 Linux

$ cd /home/user/my_project

适用于 macOS

$ cd /Users/user/my_project

适用于 Windows

$ cd C:/Users/user/my_project

并键入

$ git init

这将创建一个名为.git的新子目录,其中包含所有必要的存储库文件 — Git 存储库骨架。此时,您的项目中没有任何内容被跟踪。有关刚刚创建的.git目录中包含哪些文件的确切信息,请参见Git 内部原理

如果您想开始版本控制现有文件(而不是空目录),则应该开始跟踪这些文件并进行初始提交。您可以使用几个git add命令来指定要跟踪的文件,然后使用git commit来完成

$ git add *.c
$ git add LICENSE
$ git commit -m 'Initial project version'

我们将在稍后介绍这些命令的作用。至此,您已经拥有一个具有跟踪文件和初始提交的 Git 仓库。

克隆现有仓库

如果您想获得现有 Git 仓库的副本 — 例如,您想贡献的项目 — 您需要的命令是git clone。如果您熟悉其他 VCS(例如 Subversion),您会注意到该命令是“clone”而不是“checkout”。这是一个重要的区别 — Git 不仅仅是获得一个工作副本,而是接收服务器拥有的几乎所有数据的完整副本。当您运行git clone时,默认情况下会下拉项目中每个文件的每个版本。实际上,如果您的服务器磁盘损坏,您通常可以使用任何客户端上的几乎任何克隆将服务器恢复到克隆时的状态(您可能会丢失一些服务器端钩子等,但是所有版本控制的数据都将在那里 — 有关更多详细信息,请参见在服务器上部署 Git)。

您可以使用 git clone <url> 命令克隆一个仓库。例如,如果您想克隆名为 libgit2 的 Git 链接库,您可以这样做:

$ git clone https://github.com/libgit2/libgit2

这会创建一个名为 libgit2 的目录,并在其中初始化一个 .git 目录,从仓库中拉取所有数据,并检出最新版本的工作副本。 如果您进入刚创建的 libgit2 目录,您将看到项目文件,它们已准备好被处理或使用。

如果您想将仓库克隆到名称不是 libgit2 的目录中,您可以将新目录名称指定为附加参数:

$ git clone https://github.com/libgit2/libgit2 mylibgit

该命令与前一个命令执行相同的操作,但目标目录名为 mylibgit

Git 有许多不同的传输协议可供您使用。 前面的示例使用 https:// 协议,但您也可能看到 git://user@server:path/to/repo.git,后者使用 SSH 传输协议。 在服务器上安装 Git 将介绍服务器可以设置的所有可用选项,以便访问您的 Git 仓库,以及每种方法的优缺点。

scroll-to-top