# Git 使用说明和配置
作者:小傅哥
博客:https://bugstack.cn (opens new window)
沉淀、分享、成长,让自己和他人都能有所收获!😄
# Git 使用教程
讲到 Git 就不得不提一下 Linux,因为如果没有 Linux 也就没有 Git 的诞生,这里是有一段 10天 写出 Git 的故事!
众所周知,Linus 于 1991年 创建了开源的 Linux,从此 Linux 系统不断发展壮大。但 Linux 的壮大是靠全世界热心的开发者参与的,不过这么多人在世界各地为 Linux 编写代码,那代码是如何管理的呢?事实是,2002 之前,合并代码的操作都是 Linux 老爷子自己手动合并的!
但 2000 年的时候,不是已经 SVN (opens new window) 可以使用了吗?但 Linus 坚决反对 CVS、SVN 这些集中式的管理工具,不仅速度差还得联网操作。虽然有商用版的功能好一些,但这与 Linux 开源精神不符。所以 Linus 就不用,看人家这开源精神!
不过到了 2002年,Linux 都发展10年了,在这么手动的合并代码,让社区的兄弟也苦不堪言,强烈反对。为此,林纳斯·托瓦兹(Linus Torvalds)决定使用 BitKeeper 作为 Linux 内核主要的版本控制系统用以维护代码。BitKeeper 的东家 BitMover 公司,看 Linux 开源的不容易,授权 Linux 社区免费使用这个版本控制系统。
哈哈哈,但好景不长!2005年,安德鲁·垂鸠(Andrew Tridgell)写了一个简单程序,可以连接 BitKeeper 的仓库,BitKeeper 著作权拥有者拉里·麦沃伊认为安德鲁·垂鸠对 BitKeeper 内部使用的协议进行逆向工程,决定收回无偿使用 BitKeeper 的许可。Linux 内核开发团队与 BitMover 公司进行磋商,但无法解决他们之间的歧见。林纳斯·托瓦兹决定自行开发版本控制系统替代 BitKeeper ,以10天的时间编写出 git 第一个版本!—— 牛皮!
有了 Git 以后,GitHub 平台也于2007年10月1日开始开发。网站于2008年2月以beta版本开始上线,4月份正式上线。GitHub 里面的项目可以通过标准的 Git 命令进行访问和操作。—— 这就是 Linux、Git、Github 的故事。
# 一、软件安装
地址:https://git-scm.com/downloads (opens new window) - 选择需要的版本下载
# 1. Mac
# 如果你没有 brew 命令,则需要先安装下;https://brew.sh/index_zh-cn
brew install git
2
# 2. Windows
# 3. Linux
# Debian/Ubuntu
获取适用于您的 Debian/Ubuntu 版本的最新稳定版本
# apt-get install git
对于 Ubuntu,此 PPA 提供最新的稳定上游 Git 版本
# add-apt-repository ppa:git-core/ppa
# apt update; apt install git
2
# Red Hat Enterprise Linux, Oracle Linux, CentOS, Scientific Linux, et al.
RHEL 及其衍生版本通常提供旧版本的 git。您可以下载 tarball (opens new window)并从源代码构建,或者使用第 3 方存储库(例如IUS 社区项目) (opens new window)来获取更新版本的 git。
# 二、配置账户
# 安装完成后,配置账户,在命令行输入:
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
2
3
# 三、生成SSH
SSH 用于本地仓库和远程进行链接验证,Github、Gitee、Gitcode 都可以使用这种安全方式操作仓库
# 1. 创建
# 记得换成你的邮箱
ssh-keygen -t rsa -C "184172133@qq.com"
2

- 傻瓜式同意,点击就可以。
# 2. 查看
fuzhengwei@MacBook-Pro ~ % cd ~/.ssh
fuzhengwei@MacBook-Pro .ssh % ls
184172133@qq.com-gitcode__net config
184172133@qq.com-gitcode__net.pub fuzhengwei-GitHub
fuzhengwei@MacBook-Pro .ssh % pwd
/Users/fuzhengwei/.ssh
2
3
4
5
6
进入 /Users/fuzhengwei/.ssh
找到 rsa.pub 文件
注意:如果你进入 Mac 电脑文件夹,看不见这个隐藏文件。则可以通过 Shift + Command + .
打开隐藏文件,就看见 .ssh
文件夹了。
# 3. 使用
打开 ras.pub 文件,复制内容到仓库;
- Github:https://github.com/settings/ssh/new (opens new window)
- Gitcode:https://gitcode.net/-/profile/keys (opens new window)
- Gitee:https://gitee.com/profile/sshkeys (opens new window)

# 四、操作界面
Git 附带了用于提交 ( git-gui (opens new window) ) 和浏览 ( gitk (opens new window) ) 的内置 GUI 工具,但也有一些第三方工具可供用户寻求特定于平台的体验。

- Git 提供了操作的客户端界面,你可以按需下载使用。
# 五、操作手册
- 文档:https://git-scm.com/book/zh/v2 (opens new window) -
可以直接对照着操作,练习命令
- PDF:https://github.com/progit/progit2-zh/releases/download/2.1.62/progit.pdf (opens new window)
# 1. 起步 (opens new window)
- 1.1 关于版本控制 (opens new window)
- 1.2 Git 简史 (opens new window)
- 1.3 Git 是什么? (opens new window)
- 1.4 命令行 (opens new window)
- 1.5 安装 Git (opens new window)
- 1.6 初次运行 Git 前的配置 (opens new window)
- 1.7 获取帮助 (opens new window)
- 1.8 总结 (opens new window)
# 2. Git 基础 (opens new window)
- 2.1 获取 Git 仓库 (opens new window)
- 2.2 记录每次更新到仓库 (opens new window)
- 2.3 查看提交历史 (opens new window)
- 2.4 撤消操作 (opens new window)
- 2.5 远程仓库的使用 (opens new window)
- 2.6 打标签 (opens new window)
- 2.7 Git 别名 (opens new window)
- 2.8 总结 (opens new window)
# 3. Git 分支 (opens new window)
- 3.1 分支简介 (opens new window)
- 3.2 分支的新建与合并 (opens new window)
- 3.3 分支管理 (opens new window)
- 3.4 分支开发工作流 (opens new window)
- 3.5 远程分支 (opens new window)
- 3.6 变基 (opens new window)
- 3.7 总结 (opens new window)
# 4. 服务器上的 Git (opens new window)
- 4.1 协议 (opens new window)
- 4.2 在服务器上搭建 Git (opens new window)
- 4.3 生成 SSH 公钥 (opens new window)
- 4.4 配置服务器 (opens new window)
- 4.5 Git 守护进程 (opens new window)
- 4.6 Smart HTTP (opens new window)
- 4.7 GitWeb (opens new window)
- 4.8 GitLab (opens new window)
- 4.9 第三方托管的选择 (opens new window)
- 4.10 总结 (opens new window)
# 5. 分布式 Git (opens new window)
- 5.1 分布式工作流程 (opens new window)
- 5.2 向一个项目贡献 (opens new window)
- 5.3 维护项目 (opens new window)
- 5.4 总结 (opens new window)
# 6. GitHub (opens new window)
- 6.1 账户的创建和配置 (opens new window)
- 6.2 对项目做出贡献 (opens new window)
- 6.3 维护项目 (opens new window)
- 6.4 管理组织 (opens new window)
- 6.5 脚本 GitHub (opens new window)
- 6.6 总结 (opens new window)
# 7. Git 工具 (opens new window)
- 7.1 选择修订版本 (opens new window)
- 7.2 交互式暂存 (opens new window)
- 7.3 贮藏与清理 (opens new window)
- 7.4 签署工作 (opens new window)
- 7.5 搜索 (opens new window)
- 7.6 重写历史 (opens new window)
- 7.7 重置揭密 (opens new window)
- 7.8 高级合并 (opens new window)
- 7.9 Rerere (opens new window)
- 7.10 使用 Git 调试 (opens new window)
- 7.11 子模块 (opens new window)
- 7.12 打包 (opens new window)
- 7.13 替换 (opens new window)
- 7.14 凭证存储 (opens new window)
- 7.15 总结 (opens new window)
# 8. 自定义 Git (opens new window)
- 8.1 配置 Git (opens new window)
- 8.2 Git 属性 (opens new window)
- 8.3 Git 钩子 (opens new window)
- 8.4 使用强制策略的一个例子 (opens new window)
- 8.5 总结 (opens new window)
# 9. Git 与其他系统 (opens new window)
# 10. Git 内部原理 (opens new window)
- 10.1 底层命令与上层命令 (opens new window)
- 10.2 Git 对象 (opens new window)
- 10.3 Git 引用 (opens new window)
- 10.4 包文件 (opens new window)
- 10.5 引用规范 (opens new window)
- 10.6 传输协议 (opens new window)
- 10.7 维护与数据恢复 (opens new window)
- 10.8 环境变量 (opens new window)
- 10.9 总结 (opens new window)
# A1. 附录 A: 在其它环境中使用 Git (opens new window)
- A1.1 图形界面 (opens new window)
- A1.2 Visual Studio 中的 Git (opens new window)
- A1.3 Visual Studio Code 中的 Git (opens new window)
- A1.4 Eclipse 中的 Git (opens new window)
- A1.5 IntelliJ / PyCharm / WebStorm / PhpStorm / RubyMine 中的 Git (opens new window)
- A1.6 Sublime Text 中的 Git (opens new window)
- A1.7 Bash 中的 Git (opens new window)
- A1.8 Zsh 中的 Git (opens new window)
- A1.9 Git 在 PowerShell 中使用 Git (opens new window)
- A1.10 总结 (opens new window)
# A2. 附录 B: 在你的应用中嵌入 Git (opens new window)
- A2.1 命令行 Git 方式 (opens new window)
- A2.2 Libgit2 (opens new window)
- A2.3 JGit (opens new window)
- A2.4 go-git (opens new window)
- A2.5 Dulwich (opens new window)
# A3. 附录 C: Git 命令 (opens new window)
- A3.1 设置与配置 (opens new window)
- A3.2 获取与创建项目 (opens new window)
- A3.3 快照基础 (opens new window)
- A3.4 分支与合并 (opens new window)
- A3.5 项目分享与更新 (opens new window)
- A3.6 检查与比较 (opens new window)
- A3.7 调试 (opens new window)
- A3.8 补丁 (opens new window)
- A3.9 邮件 (opens new window)
- A3.10 外部系统 (opens new window)
- A3.11 管理 (opens new window)
- A3.12 底层命令 (opens new window)