共计 1083 个字符,预计需要花费 3 分钟才能阅读完成。
前言
上一篇文章 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 接管两个参数
- 第一个参数是 repo,
https | ssh
两种形式都能够 - 第二个参数是 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/s…,有什么问题欢送留言
日拱一兵 | 原创
正文完