保姆級服務,一鍵 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 [email protected]: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, 有什麼問題歡迎留言

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章