当前位置: 首页 > 科技观察

保姆级服务,一键GitWorktree

时间:2023-03-16 13:15:14 科技观察

本文转载自微信公众号《日工一冰》,作者谭日工一冰。转载本文请联系日工一兵公众号。前言上一篇GitWorktree进阶使用总体反响不错,这是一个可以在日常开发中使用的绝妙技能。在微服务环境下,我们通常会有多个repos,高级用法还好,但是每个repo都按照高级用法配置,还是挺麻烦的。没看到有同学发言了吗?演讲者有兴趣,听你有兴趣,然后写一个脚本。GitWorktree脚本不太擅长写bash脚本,所以写了一个worktree.sh来完整执行上一篇文章的整个过程#!/bin/bash-erepo=$1dir="${repo##*/}"dir="${dir%.*}"echo$dirbranch=$2defaultBranch="${branch:-main}"mkdir-p$dircd$dirgitclone--bare$repo.barecho"gitdir:./.bare">.gitecho"fetch=+refs/heads/*:refs/remotes/origin/*">>./.bare/configgitworktreeadd$defaultBranch这个脚本接收两个参数第一个参数是Repo,https|ssh可以两种方式使用。第二个参数是分支。不同的repos可能有不同的默认主分支名称。Github现在把主分支的名字从master改成了main,所以这里的默认值为main。这个脚本默认创建一个同名的repo文件夹,在磁盘目录的某个位置保存worktree.sh,并授权(最大权限)chmod-R777worktree.sh接下来测试效果如果默认主分支名称为develop,我们只需要添加一个参数就可以了:../worktree.shgit@github.com:FraserYu/amend-crash-demo.gitdevelop每次都去寻找可执行文件的目录显然不是一个好办法,我们需要有一个别名,并且知道环境中的变量,方便我们全局使用。根据你的电脑情况打开.zshrc或者.bashprofile文件(我用的是前者),在里面新建一个别名gwt(感觉这个名字很高端):../worktree.shgit@github.com:FraserYu/amend-crash-demo.gitdevelop然后刷新文件source~/.zshrc然后看效果:到这里,使用worktree应该很简单总结一下如果你有分支切换的各种痛点,学习使用gitworktree,那些问题将得到解决不再有全套服务。该脚本位于https://github.com/FraserYu/script.git。如果您有任何问题,请留言。那位童鞋,你有什么问题吗?