windows 安装Git
windows 安装
官网下载安装包: Git - Downloading Package

安装:
选择 Git 的安装路径:

选择安装组件

- Additional Icons、On the Desktop 添加桌面图标推荐选择推荐选择
- Windows Explorer integration、Git Bash Here、Git GUI Here
可以右键选择使用 Git Bash 和 Git GUI 两种方式的客户端 - Git LFS (Large File Support) 大文件支持,推荐勾选
- Associate .git* configuration files with the default text editor 关联.git 后缀文件,推荐勾选
- Associate .sh files to be run with Bash 关联
.sh文件,推荐勾选 - Check daily for Git for Windows updates 每天检查版本更新,不推荐勾选
- (NEW!) Add a Git Bash Profile to Windows Terminal 将 Git Bash 添加到 Windows Terminal 中推荐勾
- (NEW!)Scalar (Git add-on to manage large-scale repositories) Windows 新开发的一种大规模仓库管理,视情况而定
创建菜单文件夹

在开始菜单栏创建 Git 文件夹,可以修改“Git”来重新命名文件夹,也可以点击“Browser”添加到别的已有文件夹,也可以勾选“Don’t create a Start Menu folder”来选择不创建文件夹
选择 Git 默认编辑器
Git 安装程序里面内置了10种编辑器供你挑选,比如 Atom、Notepad、Notepad++、Sublime Text、Visual Studio Code、Vim 等等,默认的是 Vim ,选择 Vim 后可以直接进行到下一步,但是 Vim 是纯命令行,操作有点难度,需要学习。如果选其他编辑器,则还需要去其官网安装后才能进行下一步。
本教程选择 Vim 编辑器

决定初始化新项目(仓库)的主干名字

注: 第二个选项下面有个 NEW! ,说很多团队已经重命名他们的默认主干名为 main . 这是因为2020 年非裔男子乔治·弗洛伊德因白人警察暴力执法惨死而掀起的 Black Lives Matter(黑人的命也是命)运动,很多人认为 master 不尊重黑人,呼吁改为 main.
调整你的 path 环境变量
- 第一种是仅从 Git Bash 使用 Git。这个的意思就是你只能通过 Git 安装后的 Git Bash 来使用 Git ,其他的什么命令提示符啊等第三方软件都不行。
- 第二种是从命令行以及第三方软件进行 Git。这个就是在第一种基础上进行第三方支持,你将能够从 Git Bash,命令提示符 (cmd) 和 Windows PowerShell 以及可以从 Windows 系统环境变量中寻找 Git 的任何第三方软件中使用 Git。推荐使用这个。
- 第三种是从命令提示符使用 Git 和可选的 Unix 工具。选择这种将覆盖 Windows 工具,如 “ find 和 sort ”。只有在了解其含义后才使用此选项。一句话,适合比较懂的人折腾。

点击查看相关解释
1 | 翻译如下: |
选择 SSH 执行文件
勾选默认即可

1 | Use bundled OpenSSH |
选择 HTTPS 后端传输

1 | 翻译如下: |
这两种选项有什么区别:
来自:https://stackoverflow.com/questions/62456484/whats-the-difference-between-openssl-and-the-native-windows-secure-channel-libr
如果在具有企业管理证书的组织中使用 Git,则将需要使用安全通道。如果你仅使用 Git 来访问公共存储库(例如 GitHub ),或者你的组织不管理自己的证书,那么使用 SSL 后端(它们只是同一协议的不同实现)就可以了。
也就是说,作为普通用户,只是用 Git 来访问 Github、GitLab 等网站,选择前者就行了。
配置行尾符号转换

点击查看相关解释
1 | Checkout Windows-style, commit Unix-style line endings |
这三种选择分别是:
签出 Windows 样式,提交 Unix 样式的行结尾。
按原样签出,提交Unix样式的行结尾。
按原样签出,按原样提交。
更多:
那 Windows 样式和 Unix 样式到底有什么区别呢?引用《GitHub入门与实践》第 50 页内容
GitHub 中公开的代码大部分都是以 Mac 或 Linux 中的 LF(Line Feed)换行。然而,由于 Windows 中是以 CRLF(Carriage Return+ Line Feed)换行的,所以在非对应的编辑器中将不能正常显示。
Git 可以通过设置自动转换这些换行符。使用 Windows 环境的各位,请选择推荐的 “Checkout Windows-style,commit Unix-style line endings” 选项。换行符在签出时会自动转换为 CRLF,在提交时则会自动转换为 LF .
上面说 Mac 、Linux、Unix 的 Line Feed ,翻译过来就是换行符,用 “\n” 表示,换行符 “\n” 的 ASCII 值为 10;
Windows 的是 Carriage Return+ Line Feed(回车+换行),用 “\r\n” 表示,回车符 “\r” 的 ASCII 值为 13;
这上下两者是不一样的。
所以这就需要转换了,至于为什么选第一项?
这还用问吗?我们现在的教程就是介绍怎么安装 Windows 版 Git,肯定选第一项啦。
至于 “回车”(carriage return)和 “换行”(line feed)这两个概念的来历和区别?
引用一下阮一峰老师博客的部分内容
在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打 10 个字符。但是它有一个问题,就是打字机打完一行换行的时候,要用去 0.2 秒,正好可以打两个字符。要是在这 0.2 秒里面,又有新的字符传过来,那么这个字符将丢失。于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做"回车",告诉打字机把打印头定位在左边界;另一个叫做"换行",告诉打字机把纸向下移一行。
更多资料参考:
腾讯云 - 换行符‘\n’和回车符‘\r’的区别?[ https://cloud.tencent.com/developer/article/1353286 ]
知乎 - 为什么会用\r\n 两个字符表示换行?[ https://www.zhihu.com/question/29326647 ]
Stackoverflow - What are carriage return, linefeed, and form feed?[ https://stackoverflow.com/questions/3091524/what-are-carriage-return-linefeed-and-form-feed ]
点击 next 到下一步。
配置终端模拟器以与 Git Bash 一起使用

- 建议选择第一种,MinTTY 3功能比 cmd 多,cmd 只不过比 MinTTY 更适合处理 Windows 的一些接口问题,这个对 Git 用处不大,除此之外 Windows 的默认控制台窗口(cmd)有很多劣势,比如 cmd 具有非常有限的默认历史记录回滚堆栈和糟糕的字体编码等等。
- 相比之下,MinTTY 具有可调整大小的窗口和其他有用的可配置选项,可以通过右键单击的工具栏来打开它们 git-bash 。点击next到下一步。建议选择第一种,MinTTY 3 功能比 cmd 多,cmd 只不过比 MinTTY 更适合处理 Windows 的一些接口问题,这个对 Git 用处不大,除此之外 Windows 的默认控制台窗口(cmd)有很多劣势,比如 cmd 具有非常有限的默认历史记录回滚堆栈和糟糕的字体编码等等。
- 相比之下,MinTTY 具有可调整大小的窗口和其他有用的可配置选项,可以通过右键单击的工具栏来打开它们 git-bash 。点击 next 到下一步。
选择默认的 “git pull” 行为

- Git pull 就是获取最新的远程仓库分支到本地,并与本地分支合并
上面给了三个 “git pull” 的行为:- 第一个是 merge
- 第二个是 rebase
- 第三个是直接获取
- 第一种 git pull = git fetch + git merge
第二种 git pull = git fetch + git rebase
第三种 git pull = git fetch ?(这个没试过,纯属猜测)
一般默认选择第一项,git rebase 绝大部分程序员都用不好或者不懂,而且风险很大,但是很多会用的人也很推崇,但是用不好就是灾难。
Git pull 只是拉取远程分支并与本地分支合并,而 git fetch 只是拉取远程分支,怎么合并,选择 merge 还是 rebase ,可以再做选择。
点击查看更多参考资料
- 知乎 - git pull 和 git fetch 的区别? [ https://www.zhihu.com/question/38305012 ]
- 知乎 - 在开发过程中使用 git rebase 还是 git merge,优缺点分别是什么? [ https://www.zhihu.com/question/36509119 ]
- Stackoverflow - Why does git perform fast-forward merges by default? [ https://stackoverflow.com/questions/2850369 ]
- Stackoverflow - In git how is fetch different than pull and how is merge different than rebase? [ https://stackoverflow.com/questions/14894768/ ]
- Stackoverflow - Difference between git pull and git pull --rebase [ https://stackoverflow.com/questions/18930527 ]
选择一个凭证帮助程序

一共两个选项:
Git 凭证管理
不使用凭证助手
第一个选项是提供登录凭证帮助的,Git 有时需要用户的凭据才能执行操作;例如,可能需要输入用户名和密码才能通过 HTTP 访问远程存储库(GitHub,GItLab 等等)。
配置额外的选项

有两个选项:
启用文件系统缓存 和 启用符号链接
启用文件系统缓存就是将批量读取文件系统数据并将其缓存在内存中以进行某些操作,可以显著提升性能。这个选项默认开启。
启用符号链接,符号链接是一类特殊的文件,其包含有一条以绝对路径或者相对路径的形式指向其它文件或者目录的引用,类似于 Windows 的快捷方式,不完全等同类Unix(如 Linux的符号链接。因为该功能的支持需要一些条件,所以默认不开启。
配置实验性选项

1 | Enable experimental support for pseudo consoles. |
这是实验性功能,可能会有一些小错误之类的,建议不用开启。
点击 install 进行安装。
测试安装
1 | # 查看Git版本 |
将 git 与 GitHub 账号绑定
-
使用注册 GitHub 账户
选择免费账户(Free),并完成邮件验证。桌面鼠标右键 -> 打开Git Bash Here -
配置用户名和邮箱:
1
2git config --global user.name "github 用户名"
git config --global user.email "github 注册邮箱" -
创建 SSH 密匙:
1
2
3#生成 ssh 密钥,输入下方命令,然后一路回车。
ssh-keygen -t rsa -C "github 注册邮箱" -
添加密匙:
- 一般执行上述命令之后,会生成
id_rsa和id_rsa.pub两个文件,前者是我们私有的,而后者则是对外开放的。 - 接着找到生成的
.ssh的文件夹中的 id_rsa.pub 密钥。 - 进入 C:\Users\用户名.ssh 目录(要勾选显示“隐藏的项目”),用记事本打开公钥 id_rsa.pub 文件并复制里面的内容。
- 登陆 GitHub ,进入 Settings 页面,选择左边栏的 SSH and GPG keys,点击 New SSH key。
即:Sign in to GitHub · GitHub - 选择 new ssh keys,创建一个新的 SSH key,填写
Title和Key。Title可以随意,而Key的内容则是我们刚才复制的id_rsa.pub中的内容,最后点击Add SSH key即可。
- 一般执行上述命令之后,会生成
-
验证连接:
打开 Git Bash,输入
ssh -T [email protected]出现 “Are you sure……”,输入 yes 回车确认。
显示 “Hi xxx! You’ve successfully……” 即连接成功。




