当前位置: 首页 > news >正文

Windows Git Bash 配置

Windows Git Bash 配置

本文参考的文章:

  • 在 Windows 的 Git Bash 中使用包管理器 - iris (ginshio.org)
  • Git bash 安装 pacman & Windows 解压 zst 文件 | 伪斜杠青年 (lckiss.com)

一、Git的安装

Git 的安装应该是都会的,但还是应该说以下,在 Windows 上安装 git 时,实际上是有很多细节需要注意的。

  1. 选择 git 使用的默认的编辑器

    img

    实际上,git 已经在这里说的很明白了,默认 vim 是一个历史原因,推建我们使用更现代的 GUI 编辑器。实际上,你可以使用 core.editor 来修改你想使用的编辑器。当然,如果你不设置这个值,git 会用环境变量中的 EDITOR 作为默认编辑器使用,而 Unix 世界中,EDITOR 往往是 ViVim

    最后说一下笔者的习惯,本人比较习惯用 Vim,因为其插件较多,相对灵活。

    除了Vim外,还有 Emacs 、终端编辑器 GNU Nano,图形编辑器 Kate等等,当然,使用你在Windows系统里安装的编辑器也可以,比如VSCodeNotepad--等等,因人而异。

  2. 初始化新仓库时的默认分值名称

    img

    我一般选择默认,你可以使用 init.defaultbranch 来更改默认的分支名称。

  3. 环境变量的作用域

    img

    笔者比较习惯第二个选项(Recomended),这样就可以在cmd或者powershell中直接使用git命令了,而且有些软件由于会引用git命令,可能需要git支持,比如野火大学堂,这样就很方便了,第三个选项要慎重!可能会污染系统本身的环境变量,导致很多自带cmd或者powershell的命令被替换为这个Unix环境中的命令。

    如果你仅仅需要在Git Bash中使用,选第一个即可。

  4. 换行符转换

    img

    如果做跨平台项目,推荐默认第一项。

    这也是经常出问题的地方。

    也可以设置为 git 不管换行符 (checkout as-is, commit as-is),由自己根据项目要求手动关理换行符。可以用 core.autocrlf=false 来指定这种方式。其中,as-is 的意思是原本是什么样就是什么样,Git 不会转换换行符

    以下这两种方式是最容易出问题的,当原本的换行符被替换时,整个文件将发生冲突。

    • Checkout Windows-style, commit Unix-style: 拉取时转换为 Windows 换行符,和用户本地一致,提交时自动转换为 Unix 风格换行符。可以用 core.autocrlf=true 来指定这种方式。
    • Checkout as-is, commit Unix-style: 拉取时包持不变,提交时全部转换为 Unix 风格换行符。可以用 core.autocrlf=input 来指定这种方式。
  5. 用哪种终端模拟器配合 Git-Bash 使用

    img

    推荐使用 MinTTY。

  6. 选择 git pull 的默认行为

    img

    保持默认即可

    pull 的行为主要有 rebase、merge 和 fast-forward,主要由变量 pull.rebasepull.ff 控制。

    • rebase 的行为可以理解为每次都将自己的提交放在 remote 提交之后;

    • merge 的行为是将生成一个新的节点;

    • fast-forward 则会在一个提交树上类似于 rebase,当出现分叉时行为类似于 merge,如果是 ff-only 时只会产生 rebase 行为,出现分叉则会导致命令失败。

      img
      • pull.ff=false

        git pull --merge # merge
        
      • pull.ff=true

        git pull --merge # merge --ff
        
      • pull.ff=only

        git pull --merge # merge --ff-only
        
      • pull.rebase=true

        git pull # rebase
        git pull --merge # merge
        
      • pull.rebase=false

        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.045
  • bzip2
  • curl
  • gettext
  • gnupg
  • msys2-keyring
  • pacman-mirrors
  • which
  • xz
  • zstd

然而,我们并不需要安装列出的所有依赖,因为 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
    

相关文章:

Windows Git Bash 配置

Windows Git Bash 配置 本文参考的文章: 在 Windows 的 Git Bash 中使用包管理器 - iris (ginshio.org)Git bash 安装 pacman & Windows 解压 zst 文件 | 伪斜杠青年 (lckiss.com) 一、Git的安装 Git 的安装应该是都会的,但还是应该说以下&#…...

java代码整合kettle9.3实现读取表中的数据,生成excel文件

java代码整合kettle9.3实现读取表中的数据&#xff0c;生成excel文件 1.简介 本次使用java代码整合kettle9.3版本&#xff0c;数据库使用mysql。 2.jar包导入 项目需要依赖部分kettle中的jar包&#xff0c;请将这部分jar包自行导入maven仓库。 <dependency><groupId…...

分享微信点餐小程序搭建步骤_微信点餐功能怎么做

线下餐饮实体店都开始摸索发展网上订餐服务。最多人选择的是入驻外卖平台&#xff0c;但抽成高&#xff0c;推广还要另买流量等问题&#xff0c;也让不少商家入不敷出。在这种情况下&#xff0c;建立自己的微信订餐小程序&#xff0c;做自己的私域流量是另一种捷径。那么&#…...

4、数组、切片、map、channel

目录一、数组二、切片三、map四、channel五、引用类型一、数组 数组&#xff1a; 数组是块连续的内存空间&#xff0c;在声明的时候必须指定长度&#xff0c;且长度不能改变所以数组在声明的时候就可以把内存空间分配好&#xff0c;并赋上默认值&#xff0c;即完成了初始化数组…...

270 uuid

270 uuid 用途 For the creation of RFC4122 UUIDs 可靠性 10000 星星 适应于浏览器或者服务器 官网链接 https://www.npmjs.com/package/uuid https://github.com/uuidjs/uuid 基本使用 import { v4 as uuidv4 } from uuid; uuidv4(); // ⇨ 9b1deb4d-3b7d-4bad-9bdd-2b0d7b3d…...

2023最新简历模板免费下载

下面分享5个简历模板网站&#xff0c;免费下载&#xff0c;建议收藏&#xff01; 2023用最漂亮的简历模板&#xff0c;让面试官眼前一亮。 1、菜鸟图库 个人简历模板|WORD文档模板免费下载 - 菜鸟图库 菜鸟图库除了有超多设计类素材之外&#xff0c;还有很多办公类素材&#…...

【CSS】元素居中总结-水平居中、垂直居中、水平垂直居中

【CSS】元素居中一、 水平居中1.行内元素水平居中&#xff08;1&#xff09;text-align2.块级元素水平居中2.1 margin&#xff08;1&#xff09;margin2.2布局&#xff08;1&#xff09;flex justify-content&#xff08;推荐&#xff09;&#xff08;2&#xff09; flexmargin…...

spring实现AOP

文章目录前言一、AOP的底层实现原理二、AOP的两种开发模式1.使用xml配置文件1.1 添加AOP依赖1.2 创建UserService1.3创建UserServiceImpl1.4创建通知类1.5 创建applicationContext.xml&#xff08;添加aop约束&#xff09;1.6 测试2.使用注解开发2.1 创建bean.xml文件配置注解方…...

neovim搭建cpp环境

文章目录Windowns下NeoVim搭建cpp环境NeoVim安装插件vim-plugindentLinevim-airlinectagstagbarcoc.vimWindowns下NeoVim搭建cpp环境 在开发过程中习惯在DIE环境中使用vim作为编辑器&#xff0c;在单独的编辑器也常使用gvim图形化编辑器。最近看到NeoVim的特性及兼容性方面不输…...

SpringBoot AES加密 PKCS7Padding 模式

AES 简介&#xff1a;DES 全称为Data Encryption Standard&#xff0c;即数据加密标准&#xff0c;是一种使用密钥加密的块算法&#xff0c;1977年被美国联邦政府的国家标准局确定为联邦资料处理标准&#xff08;FIPS&#xff09; AES 密码学中的高级加密标准&#xff08;Advan…...

按键输入驱动

目录 一、硬件原理 二、添加设备树 1、创建pinctrl 2、创建节点 3、检查 编译复制 三、修改工程模板​编辑 四、驱动编写 1、添加keyio函数 2、添加调用 3、驱动出口函数添加释放 4、添加原子操作 5、添加两个宏定义 6、初始化原始变量 7、打开操作 8、读操作 总体代…...

2023年第七周总周结 | 开学倒数第三周

为什么要做周总结&#xff1f; 1.避免跳相似的坑 2.客观了解上周学习进度并反思&#xff0c;制定可完成的下周规划 一、上周问题解决情况 晚上熬夜导致第二天学习状态不好 这周熬夜一天&#xff0c;晚上帮亲戚修手机到22:30&#xff0c;可能是晚上自己的事什么都没做&#xff…...

Springboot扫描注解类

Springboot扫描注解类的入口在AbstractApplicationContext的refresh中&#xff0c;对启动步骤不太了解的&#xff0c;可参考https://blog.csdn.net/leadseczgw01/article/details/128930925BeanDefinitionRegistryPostProcessor接口有多个实现类&#xff0c;扫描Controller、Se…...

Apache日志分析器

您的Apache HTTP服务器生成的日志数据是信息的宝库。使用这些信息&#xff0c;您可以判断您服务器的使用情况、找出漏洞所在&#xff0c;并设法改进服务器结构和整体性能。审核您的Apache日志可在以下情况派上用场&#xff0c;其中包括&#xff1a;识别和纠正频繁出现的错误以增…...

啪,还敢抛出异常

&#x1f649; 作者简介&#xff1a; 全栈领域新星创作者 &#xff1b;天天被业务折腾得死去活来的同时依然保有对各项技术热忱的追求&#xff0c;把分享变成一种习惯&#xff0c;再小的帆也能远航。 &#x1f3e1; 个人主页&#xff1a;xiezhr的个人主页 前言 去年又重新刷了…...

Apache JMeter 5.5 下载安装以及设置中文教程

Apache JMeter 5.5 下载安装以及设置中文教程JMeter下载Apache JMeter 5.5配置环境变量查看配置JDK配置JMeter环境变量运行JMeter配置中文版一次性永久设置正文JMeter 下载Apache JMeter 5.5 官方网站&#xff1a;Apache JMeter 官网 版本介绍&#xff1a; 版本中一个是Bina…...

string类模拟实现

了解过string常用接口后&#xff0c;接下来的任务就是模拟实现string类。 目录 VS下的string结构 默认成员函数和简单接口 string结构 c_str()、size()、capacity()、clear()、swap() 构造函数 拷贝构造函数 赋值重载 析构函数 访问及遍历 容量操作 reserve resize …...

cadence SPB17.4 S032 - allegro - 保存/载入光绘层定义

文章目录cadence SPB17.4 S032 - allegro - 保存/载入光绘层定义概述保存光绘层在新板子中载入已经保存的相同类型老板子定义好的光绘层定义文件碎碎念ENDcadence SPB17.4 S032 - allegro - 保存/载入光绘层定义 概述 以前布线完成, 准备出板厂文件时, 总是要手工重新建立光绘…...

微服务实战--高级篇:分布式缓存 Redis

分布式缓存 – 基于Redis集群解决单机Redis存在的问题 单机的Redis存在四大问题&#xff1a; 1.Redis持久化 Redis有两种持久化方案&#xff1a; RDB持久化AOF持久化 1.1.RDB持久化 RDB全称Redis Database Backup file&#xff08;Redis数据备份文件&#xff09;&#xf…...

【C语言】可变参数列表

本篇博客让我们来认识一下C语言学习过程中往往被忽略的可变参数列表 所谓可变参数&#xff0c;就是一个不限定参数数量的函数&#xff0c;我们可以往里面传入任意个数的参数&#xff0c;以达成某些目的。 关联&#xff1a;C11可变模板参数&#xff1b;本文首发于 慕雪的寒舍 …...

终极Blender 3MF插件:如何快速实现3D打印文件的无缝转换

终极Blender 3MF插件&#xff1a;如何快速实现3D打印文件的无缝转换 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat Blender3mfFormat是一款专为Blender设计的开源插件&a…...

4sapi 企业级实战:统一模型网关与全生命周期管理解决方案

引言随着大模型技术在企业中的广泛应用&#xff0c;越来越多的企业开始面临 "模型碎片化" 的挑战。不同部门、不同业务线各自对接不同的大模型厂商&#xff0c;使用不同的 API 接口&#xff0c;导致企业内部出现了多个独立的 AI 孤岛&#xff0c;带来了一系列严重的问…...

Android本地AI智能家居框架:ZeroClaw架构设计与工程实践

1. 项目缘起与核心愿景几年前&#xff0c;我还在为一个智能家居项目焦头烂额&#xff0c;试图让家里的灯光、空调和音箱能听懂人话&#xff0c;而不是只会执行预设的“回家模式”或“睡眠模式”。当时市面上主流的方案&#xff0c;要么是依赖某个封闭的云平台&#xff0c;所有指…...

Windows系统mqoa.dll文件丢失无法启动程序解决

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…...

从find到ind2sub:Matlab数据筛选后操作的完整工作流(以R2023b为例)

从find到ind2sub&#xff1a;Matlab数据筛选后操作的完整工作流&#xff08;以R2023b为例&#xff09; 在数据分析与科学计算领域&#xff0c;Matlab作为一款强大的工具&#xff0c;其矩阵操作能力尤为突出。面对大型矩阵或高维数组时&#xff0c;如何高效地定位并处理特定条件…...

如何一键清理Windows系统:Win11Debloat终极优化指南

如何一键清理Windows系统&#xff1a;Win11Debloat终极优化指南 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and cust…...

ElevenLabs企业客户成功路径图:从POC验证到年度千万级合同签署的5个不可跳过的合规锚点

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ElevenLabs企业客户成功路径图&#xff1a;从POC验证到年度千万级合同签署的5个不可跳过的合规锚点 企业在采用ElevenLabs语音合成平台构建AI客服、无障碍内容生成或本地化语音交付系统时&#xff0c;技…...

告别黑盒:手把手调试MTK Camera HAL3日志,定位拍照卡顿与预览异常

告别黑盒&#xff1a;手把手调试MTK Camera HAL3日志&#xff0c;定位拍照卡顿与预览异常 在移动影像开发领域&#xff0c;MTK平台的Camera HAL3层问题排查常被开发者视为"黑盒操作"。当用户反馈"拍照延迟明显"或"预览画面卡顿"时&#xff0c;缺…...

PID控温实战:从STM32的PWM输出到加热棒,手把手教你调出稳定曲线

PID控温实战&#xff1a;从STM32的PWM输出到加热棒的温度控制艺术 在工业自动化、智能家居和实验室设备中&#xff0c;精确的温度控制一直是开发者面临的经典挑战。想象一下&#xff0c;当你需要将一块金属加热到200C并保持稳定&#xff0c;或者让培养箱维持在37C0.1C的精度时&…...

从ELMo到GPT:预训练语言模型的演进之路与核心思想剖析

1. 从静态词向量到动态上下文&#xff1a;ELMo的革命性突破 2018年之前&#xff0c;NLP领域长期被Word2Vec和GloVe这类静态词向量统治。想象一下&#xff0c;你给每个单词发一张永久身份证&#xff0c;无论它出现在什么场合都只能展示相同的身份信息——这就是静态词向量的本质…...