其實最近想git有甚麼好方法做部屬動作
蒐集網路一些方法
都是delete all file
再刪除….
但感覺這種作法,會讓服務中斷
有想到用git pull
更新方法
但Server Web目錄會有git
雖然有想到用git方法
不過最終有找到不錯的做法
Git 如何針對其他路徑下的 Repository 執行指令
最近剛好看到這篇git -–git-dir={專案路徑}.git\ -–work-tree={專案路徑} {git 指令}
看到這個舊感覺能用在git簡單部屬上面
所以就稍微在我Linux電腦主機上面玩了一下
簡單原理git-dir
運用在git 資料夾,這邊範例是.git
結尾
我一開始以為一定要用bare
但後來發現,除了可以用bare
當git
還能用一般project_dir/.git/
work-tree 就是要對應其路徑
看到這個就能感覺輕鬆部屬
.git/hooks/post-receive1
2
3
4# !/bin/sh
# checkout HEAD
git --get-dir=xxxxx/.git/ --work-tree=xxxx(部屬位置) checkout -f1
chmod +x .git/hooks/post-receive
How to deploy projects with Git - Buddy
雖然感覺也是能用git reset --hard head
不過網路上用這個比較多
也有看到做之前git checkout -f
做git stash
雖然這篇是透過push git repo去做更新
但我覺得不應該讓bare有兩個
改天push錯就GG XD
之前也有研究用caddy-git使用webhook初體驗 | 程式狂想筆記
感覺可以運用這個上面then command [args...]
應該就可以做git --get-dir=xxxxx/.git/ --work-tree=xxxx(部屬位置) checkout -f
目前在想1
dev_git --push-->git reop --> webhook --> caddy webhook --> git deploy
當然這邊只能做不需要編譯的部屬
例如PHP應該能這樣做
說不定哪天就有機會可以用到
2019-12-16
最近看到這篇 Hugo 博客折腾记 - 咸鱼的小鱼塘 有Webhook 程式
adnanh/webhook: webhook is a lightweight incoming webhook server to run shell commands
簡單可以用 shell 部屬
但我還沒測試過
不知道同一個時間做 webhook ,會不會影響部屬?
另類部屬方法
手摸手带你部署git服务器实现自动发布代码 - 个人文章 - SegmentFault 思否
通过Git将Hexo博客部署到服务器 - 掘金
上面有寫到
其他參考來源:
- Git 面試題 - Git 教學 | 高見龍
- abiosoft/caddy-git: git middleware for Caddy
- simple-php-git-deploy,使用PHP和Git自動部署代碼,下載simple-php-git-deploy的源碼GitHub幫酷
- 从Git部署一个PHP项目到没有安装Git的服务器 - 代码日志
- 安全的代码部署 · php笔记 · 看云
- SegmentFault
- git 服务器 搭建/自动部署/远程连接 | Caoxl’s Blog
- git hook实践心得 - 腾讯Web前端 IMWeb 团队社区 | blog | 团队博客
- git remote add with other SSH port - Stack Overflow
- 用caddy-git使用webhook初體驗 | 程式狂想筆記
- abiosoft/caddy-git: git middleware for Caddy