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

前言

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

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

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 两种方式都可以
  2. 第二个参数是 branch,不同的 repo 默认的主分支命名可能不一样,Github 现在将主分支命从 master 改为 main,所以这里默认值就是 main

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

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

chmod -R 777 worktree.sh

接下来就测试一下效果

假如默认主分支名是 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

再来看一下效果:

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

总结

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

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

posted @   日拱一兵  阅读(205)  评论(0编辑  收藏  举报
编辑推荐:
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2020-12-02 Windows 的这款工具,有时让我觉得 Mac 不是很香
点击右上角即可分享
微信分享提示