章节 ▾
第二版
-
1. 起步
-
2. Git 基础
-
3. Git 分支
-
4. 服务器上的 Git
- 4.1 协议
- 4.2 在服务器上部署 Git
- 4.3 生成 SSH 公钥
- 4.4 架设服务器
- 4.5 Git Daemon
- 4.6 Smart HTTP
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 第三方托管服务
- 4.10 小结
-
5. 分布式 Git
-
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 命令
A2.1 附录 B:将 Git 嵌入你的应用程序 - 命令行 Git
如果你的应用程序是为开发者设计的,那么它很有可能从与版本控制系统的集成中受益。即便是非开发者应用程序(例如文档编辑器),也可能从版本控制功能中受益;而 Git 的模型非常适合多种不同的场景。
如果你需要将 Git 集成到你的应用程序中,基本上有两个选择:启动一个 shell 并调用 git 命令行程序,或者将 Git 库嵌入到你的应用程序中。在这里,我们将介绍命令行集成以及几种最流行的可嵌入 Git 库。
命令行 Git
一种选择是启动一个 shell 进程并使用 Git 命令行工具来完成工作。这样做的好处是它非常标准,并且支持 Git 的所有功能。此外,由于大多数运行环境都提供相对简单的机制来调用带有命令行参数的进程,因此这种方法也相当容易实现。然而,这种方法确实存在一些缺点。
其一是所有的输出都是纯文本。这意味着你必须解析 Git 有时会发生变化的输出格式来读取进度和结果信息,这可能效率低下且容易出错。
其二是缺乏错误恢复能力。如果仓库以某种方式损坏,或者用户配置了格式错误的配置值,Git 将简单地拒绝执行许多操作。
另一个问题是进程管理。Git 要求你在单独的进程中维护 shell 环境,这会增加不必要的复杂性。尝试协调许多此类进程(特别是在可能从多个进程访问同一个仓库时)可能是一个相当大的挑战。