保姆级服务,一键 Git Worktree,这样满意吗?

简介: 保姆级服务,一键 Git Worktree,这样满意吗?

前言


上一篇文章Git Worktree 高级使用 整体反应不错,这完全是日常开发中可以用到的奇淫技巧。微服务环境下,通常我们都会有多个 repo,高级用法好归好,但每个 repo 都按照高级用法进行配置,还是比较麻烦的,你看这不就有同学发声了嘛


微信图片_20220512122818.jpg


说者有心,听者有意,那就写个脚本吧


Git Worktree 脚本


个人不是很擅长写 bash script,磕磕绊绊写了一个 worktree.sh,完全执行上一篇文章的整个过程


#!/bin/bash -e
repo=$1
dir="${repo##*/}"
dir="${dir%.*}"
echo $dir
branch=$2
defaultBranch="${branch:-main}"
mkdir -p $dir
cd $dir
git clone --bare $repo .bare
echo "gitdir: ./.bare" > .git
echo "    fetch = +refs/heads/*:refs/remotes/origin/*" >> ./.bare/config
git worktree add $defaultBranch


这个 script 接收两个参数


  1. 第一个参数是 repohttps | ssh 两种方式都可以


  1. 第二个参数是 branch,不同的 repo 默认的主分支命名可能不一样,Github 现在将主分支命从 master 改为 main,所以这里默认值就是 main


该脚本默认创建 repo 同名文件夹


将 worktree.sh 保存在磁盘目录的某个位置,并授权(最大权限)


chmod -R 777 worktree.sh


接下来就测试一下效果



微信图片_20220512122930.gif


假如默认主分支名是 develop, 我们只需要添加一个参数就可以了:


../worktree.sh git@github.com:FraserYu/amend-crash-demo.git develop


每次找可执行文件的目录很显然不是一个好的方式,我们需要起个别名,配知道环境变量中,这样方便我们全局使用,根据自己电脑情况打开 .zshrc.bashprofile 文件(我用的前者)


在里面创建一个别名 gwt(感觉这个名字好高端):


alias gwt='/Users/rgyb/Documents/projects/personal/worktree.sh'


然后刷新一下该文件


source ~/.zshrc


再来看一下效果:


微信图片_20220512123039.gif


到这里,使用 worktree 应该非常简单了吧


总结


如果你有多分支切换的各种痛点,学会使用 git worktree,那些问题将不复存在。服务提供全套,脚本放在了

https://github.com/FraserYu/s..., 有什么问题欢迎留言

相关文章
|
2月前
|
开发工具 git
git显示开发日志+WinSW——将.exe文件注册为服务的一个工具+图床PicGo+kubeconfig 多个集群配置 如何切换
git显示开发日志+WinSW——将.exe文件注册为服务的一个工具+图床PicGo+kubeconfig 多个集群配置 如何切换
42 1
|
4月前
|
Linux 开发工具 git
[git]基于GitLab搭建本地Git服务
[git]基于GitLab搭建本地Git服务
|
6月前
|
关系型数据库 Go 开发工具
|
7月前
|
存储 开发工具 git
|
7月前
|
Ubuntu Linux 开发工具
|
7月前
|
存储 安全 开发工具
Git 保姆级教程(一):Git 基础
Git 保姆级教程(一):Git 基础
|
7月前
|
开发工具 git
Git 保姆级教程(二):Git 分支
Git 保姆级教程(二):Git 分支
|
开发工具 git
|
网络安全 开发工具 C语言
从私有Git仓库的搭建到命令的使用再到分支管理,全流程全套服务包您满意(三)
Git是一款开源的分布式版本控制系统,可以有效,高速处理从很小到非常大的项目版本管理。 Git是通过C语言开发实现的。
258 0
从私有Git仓库的搭建到命令的使用再到分支管理,全流程全套服务包您满意(三)
|
开发工具 C语言 git
从私有Git仓库的搭建到命令的使用再到分支管理,全流程全套服务包您满意(二)
Git是一款开源的分布式版本控制系统,可以有效,高速处理从很小到非常大的项目版本管理。 Git是通过C语言开发实现的。
159 0
从私有Git仓库的搭建到命令的使用再到分支管理,全流程全套服务包您满意(二)