利用msys2搭建开发环境-Git配置篇


概述

之前总结了一些msys2使用中遇到的问题,但是不系统,有些问题也没有深究,解决了就忘记了。最近在新的机器上配置环境的时候发现一些问题,这次干脆写一个完整的配置过程。防止以后遗忘。

本系列将分为几个连载内容发布,分别为:

  1. 利用msys2搭建开发环境-基础配置篇
  2. 利用msys2搭建开发环境-Git篇
  3. 利用msys2搭建开发环境-golang开发环境篇

本节主要记录git的安装与基本配置,以及解决msys2下的git使用中遇到的问题。

安装git

在安装好msys2后当然第一个要安装的应用当然是git了。平常需要下载安装包,每次升级都要重新安装。现在有了msys2可以使用pacman安装了,而且后面升级也是一条命令即可。

pacman -Sy git

完成了。

基本配置

设置用户信息:

git config --global user.name "John Doe"
git config --global user.email johndoe@example.com

支持中文件名显示

git config –-global core.quotepath false

回车换行转换,windows上尤其必要:

git config --global core.autocrlf true

autocrlf三个值及解释

  • true: 提交时转换为 LF,检出时转换为 CRLF
  • false: 提交检出均不转换(linux/macos)
  • input: 提交时转换为LF,检出时不转换

生成ssh公钥并使用

ssh-keygen -o

查看公钥:

cat ~/.ssh/id_rsa.pub

Jetbrains家族配置

IDEA系列IDE(phpstorm cloin)修改Terminal:

"D:\msys64\usr\bin\env.exe" CHERE_INVOKING=1 /usr/bin/bash --login -i

vscode兼容

msys2安装的git,vscode中有些兼容问题,可能会提示一下错误:
中文版: 当前没有源代码管理提供程序进行注册
英文版: no source control provider register

这时候可以手动写一个包装文件,%MSYS2_HOME%\usr\bin\git-wrap.bat,

@echo off
setlocal
rem If you don't add path for msys2 into %PATH%, enable following line.
rem set PATH=E:\msys64\usr\bin;%PATH%
if "%1" equ "rev-parse" goto rev_parse
git %*
goto :eof
:rev_parse
for /f %%1 in ('git %*') do cygpath -w %%1

然后在vscode的设置中搜索git.path,并将该参数的值设置为:

“git.path”: “D:\\msys64\\usr\\bin\\git-wrap.bat”,

成功。

为了方便起见,把git-wrap.bat放在git同目录下。

Bash中提示git分支信息

将下面代码添加到~/.bashrc,执行source ~/.bashrc或者重新打开新的shell即可。

# show git branch name
function git-branch-name() {
  git symbolic-ref HEAD 2>/dev/null | cut -d"/" -f 3
}
function git-branch-prompt() {
  local branch=`git-branch-name`
  if [ $branch ]; then
    printf "(%s)" $branch
  fi
}
function get-PS1() {
  local branchname=`git-branch-prompt`
  printf "\n\e[32m%s\e[36m%s\e[35m %s \e[33m%s\e[36m %s \e[0m \n%s " "\u" "[\#]" "MSYS" "\w" $(git-branch-prompt) "\$"
}
function show-PS1() {
  if [ -d "$(pwd)/.git" ]; then
    export PS1=`get-PS1`
  else
    export PS1="\n\[\e[32m\]\u\[\e[36m\][\#]\[\e[35m\] MSYS \[\e[33m\w\]\[\e[0m\] \n\$ "
  fi
}
function cd(){
  builtin cd "$@" && show-PS1
}
show-PS1

gitk无法使用

运行gitk时报错,得到如下信息

英文版提示:

/usr/bin/gitk: line 3: exec: wish: not found

中文版提示:

/usr/bin/gitk: 第 3 行:exec: wish:未找到

安装mingw-w64-x86_64-tk

pacman -S mingw-w64-x86_64-tk`

安装后如果仍然不起作用则,设置环境变量,

MSYSTEM=MINGW64

还有一种办法就是将%MSYS2_HOME%\mingw64\bin添加到PATH,但是这种方式不如上面环境变量的方式。

Archives