-
A1. 附录 A:其他环境中的 Git
- A1.1 图形界面
- A1.2 Visual Studio 中的 Git
- A1.3 Visual Studio Code 中的 Git
- A1.4 IntelliJ/PyCharm/WebStorm/PhpStorm/RubyMine 中的 Git
- A1.5 Sublime Text 中的 Git
- A1.6 Bash 中的 Git
- A1.7 Zsh 中的 Git
- A1.8 PowerShell 中的 Git
- A1.9 总结
-
A2. 附录 B:将 Git 嵌入到你的应用程序中
-
A3. 附录 C:Git 命令
2.1 Git 基础 - 获取 Git 仓库
如果你只想阅读一章来开始使用 Git,那么这一章就是你的最佳选择。本章涵盖了执行绝大多数 Git 操作所需的基本命令。在阅读完本章后,你应该能够配置和初始化仓库、开始和停止跟踪文件以及暂存和提交更改。我们还会向你展示如何设置 Git 以忽略某些文件和文件模式、如何快速轻松地撤销错误、如何浏览项目的历史记录以及查看提交之间的更改,以及如何从远程仓库推送和拉取。
获取 Git 仓库
通常,获取 Git 仓库有两种方法:
-
你可以将一个当前未受版本控制的本地目录转换为 Git 仓库,或者
-
你可以从其他地方克隆一个现有的 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
命令。如果你熟悉其他版本控制系统,例如 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 仓库的选项以及每个选项的优缺点。