电子商务网站建设策划书,宣传网站建设的意义,2022年互联网公司排名,页面设计常用的主题颜色Windows Git Bash 配置
本文参考的文章#xff1a;
在 Windows 的 Git Bash 中使用包管理器 - iris (ginshio.org)Git bash 安装 pacman Windows 解压 zst 文件 | 伪斜杠青年 (lckiss.com)
一、Git的安装
Git 的安装应该是都会的#xff0c;但还是应该说以下#…Windows Git Bash 配置
本文参考的文章
在 Windows 的 Git Bash 中使用包管理器 - iris (ginshio.org)Git bash 安装 pacman Windows 解压 zst 文件 | 伪斜杠青年 (lckiss.com)
一、Git的安装
Git 的安装应该是都会的但还是应该说以下在 Windows 上安装 git 时实际上是有很多细节需要注意的。 选择 git 使用的默认的编辑器 实际上git 已经在这里说的很明白了默认 vim 是一个历史原因推建我们使用更现代的 GUI 编辑器。实际上你可以使用 core.editor 来修改你想使用的编辑器。当然如果你不设置这个值git 会用环境变量中的 EDITOR 作为默认编辑器使用而 Unix 世界中EDITOR 往往是 Vi 或 Vim。 最后说一下笔者的习惯本人比较习惯用 Vim因为其插件较多相对灵活。 除了Vim外还有 Emacs 、终端编辑器 GNU Nano图形编辑器 Kate等等当然使用你在Windows系统里安装的编辑器也可以比如VSCode、Notepad--等等因人而异。 初始化新仓库时的默认分值名称 我一般选择默认你可以使用 init.defaultbranch 来更改默认的分支名称。 环境变量的作用域 笔者比较习惯第二个选项(Recomended)这样就可以在cmd或者powershell中直接使用git命令了而且有些软件由于会引用git命令可能需要git支持比如野火大学堂这样就很方便了第三个选项要慎重可能会污染系统本身的环境变量导致很多自带cmd或者powershell的命令被替换为这个Unix环境中的命令。 如果你仅仅需要在Git Bash中使用选第一个即可。 换行符转换 如果做跨平台项目推荐默认第一项。 这也是经常出问题的地方。 也可以设置为 git 不管换行符 (checkout as-is, commit as-is)由自己根据项目要求手动关理换行符。可以用 core.autocrlffalse 来指定这种方式。其中as-is 的意思是原本是什么样就是什么样Git 不会转换换行符。 以下这两种方式是最容易出问题的当原本的换行符被替换时整个文件将发生冲突。 Checkout Windows-style, commit Unix-style: 拉取时转换为 Windows 换行符和用户本地一致提交时自动转换为 Unix 风格换行符。可以用 core.autocrlftrue 来指定这种方式。Checkout as-is, commit Unix-style: 拉取时包持不变提交时全部转换为 Unix 风格换行符。可以用 core.autocrlfinput 来指定这种方式。 用哪种终端模拟器配合 Git-Bash 使用 推荐使用 MinTTY。 选择 git pull 的默认行为 保持默认即可 pull 的行为主要有 rebase、merge 和 fast-forward主要由变量 pull.rebase 和 pull.ff 控制。 rebase 的行为可以理解为每次都将自己的提交放在 remote 提交之后 merge 的行为是将生成一个新的节点 fast-forward 则会在一个提交树上类似于 rebase当出现分叉时行为类似于 merge如果是 ff-only 时只会产生 rebase 行为出现分叉则会导致命令失败。 pull.fffalse git pull --merge # mergepull.fftrue git pull --merge # merge --ffpull.ffonly git pull --merge # merge --ff-onlypull.rebasetrue git pull # rebase
git pull --merge # mergepull.rebasefalse git pull # merge
git pull --merge # merge二、安装包管理器
安装pacman及其依赖
构建 Unix 环境的第一步就是有一个包管理器我们直接使用 MSYS 的 pacman 包管理器。下载完成后将其解压到 Git 的根目录下在本部分内容里我们用 / 表示 Git 安装的根目录。
发现提供的包是tar. zst类型Windows 上的压缩软件不支持直接解压于是上 GitHub 找到了一个https://github.com/mcmilk/7-Zip-zstd/releases可用于解压。临时解决方案如有更好的方案请大佬们告知
这时的 pacman 还是无法使用的阶段毕竟 Git 携带的是最小化的环境并没有 pacman 需要的依赖。不过 msys package 中已经为我们详细列出了其所需的依赖。如果你想知道 Git 安装了哪些软件可以查看 /etc/package-versions.txt。
cat /etc/package-versions.txt所需依赖如下
bash 4.2.045bzip2curlgettextgnupgmsys2-keyringpacman-mirrorswhichxzzstd
然而我们并不需要安装列出的所有依赖因为 Git 已经帮我们安装了一部分了。我们只需要安装 pacman-mirrors 和 msys2-keyring 。
安装的三个东西一个是 pacman 主包一个是源一个是源秘钥。
PS这就是个先鸡后蛋问题 。
更新 pacman
这时候去执行 pacman 不出意外是会不行的什么签名未信任无效的数据库无法锁定数据库之类的问题不大。
依次执行以下命令 刷新秘钥 pacman-key --init
pacman-key --refresh-keys
pacman-key --populat
pacman-key --populate msys2 # 和上面一条执行任一个即可清除缓存 pacman -Sc更新系统 pacman -Syu
pacman -Syuu # 和上面一条执行任一个即可测试列出所有软件包 pacman -Sl避免安装不完整我们接下来用pacman安装和更新pacman这样就会自动补齐所需软件包和依赖 pacman -S pacman
pacman -S pacman-mirrors
pacman -S msys2-keyring