保姆级服务,一键 Git Worktree

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

[[438030]]

本文转载自微信公众号「日拱一兵」,作者tan日拱一兵。转载本文请联系日拱一兵公众号。

前言

上一篇文章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 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.

这个 script 接收两个参数

第一个参数是 repo,https | ssh 两种方式都可以

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

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

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

chmod -R 777 worktree.sh 
  • 1.

接下来就测试一下效果

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

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

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

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

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

然后刷新一下该文件

source ~/.zshrc 
  • 1.

再来看一下效果:

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

总结

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

 

https://github.com/FraserYu/script.git, 有什么问题欢迎留言,那位童鞋,还有什么问题吗?

 

责任编辑:武晓燕 来源: 日拱一兵
相关推荐

2025-02-13 00:00:02

DeepSeek插件API

2015-02-09 15:25:52

换肤

2023-12-19 15:45:07

Linux工具

2025-03-06 00:08:00

DeepSeekDrawio技巧

2024-04-18 09:12:58

Git分支代码

2025-01-13 00:00:15

分支gitmaster

2024-10-28 00:00:25

GitCIfeature

2022-07-22 14:32:29

账号登录服务鸿蒙

2023-03-05 23:11:07

Go语言服务

2015-11-03 15:29:49

ONOS开放网络操作系统SDN

2022-07-27 14:59:20

原子化服务鸿蒙

2021-01-15 09:30:02

Tomcat ApacheJavaServer

2023-06-15 10:00:00

Jenkins任务操作

2014-03-14 11:25:33

NetIQ Mobil

2017-12-22 09:28:33

微信车险微车保

2016-10-31 13:59:10

Docker技术架构性能优化

2022-12-12 11:09:21

企业技术采购IT

2022-04-07 13:56:13

前端一键换肤

2023-09-28 08:01:32

点赞
收藏

51CTO技术栈公众号