与你的团队分享git hooks的两种方式
Git hooks 是git非常好用的一个特性,在我自己的项目中,我需要保证我的所有go源文件都能够被正确地格式化,然后才能够被commit。因此,我用了一个很简单的git hook完成这项工作,你可以把这个文件的内容保存到.git/hooks/pre-commit
来实现这个功能。
对我个人而言,这样的工作已经足够,但是我想把这个好主意分享给我的小伙伴们。这篇Stack Overflow 文章给了我一些灵感,我在这里进行一些扩展。
创建你的受控的Hooks文件夹
由于.git
文件夹是不会被git跟踪的,因此我们需要在根目录创建一个.githooks
来存储我们的hooks脚本。你可以选择任意的文件夹名,只要能够work即可。记住所有的hooks需要可执行权限,所以需要保证所有的hook脚本都执行过chmod +x
命令,否则,脚本将不会工作。
选择你的分享策略
如果你的 Git版本为Version 2.9或者更高,你可以简单地通过设置core.hooksPath
配置项来实现你的功能:
$ git config core.hooksPath .githooks
如果你在使用低版本的Git,你可以通过符号链接实现上述功能,你可以通过这个命令实现git的重定向:
$ find .git/hooks -type l -exec rm {} \; && find .githooks -type f -exec ln -sf ../../{} .git/hooks/ \;
共享你的脚本
虽然hooks通常是本地脚本,但是在共享的时候,通常需要确保团队的成员都能够将hooks放置在合适的位置,并且能够正常地工作。特别是在他们每次做了新的checkout的时候,因此我把我的脚本放在了Makefile
中,在每次我的项目初始化的时候自动去执行,下面是我的两个任务:
init:
git config core.hooksPath .githooks
earlier version:
init:
find .git/hooks -type l -exec rm {} \;
find .githooks -type f -exec ln -sf ../../{} .git/hooks/ \;
codestack
分享代码相关的经验及感悟,主要专注于golang,haskell
推荐阅读
理解 LSM Tree : 是什么让数据库这么能写?
log-structured merge-tree (LSM tree) 是一种被精心设计的数据结构,常用于处理大量写入的场景。通过对写入操作进行顺序写入优化实现性能提升。LSM tree 是很多数据库内部的核心数据结构,包括BigTable, Cassand...
terasum赞 4阅读 6.9k
Git操作不规范,战友提刀来相见!
年终奖都没了,还要扣我绩效,门都没有,哈哈。这波骚Git操作我也是第一次用,担心闪了腰,所以不仅做了备份,也做了笔记,分享给大家。问题描述小A和我在同时开发一个功能模块,他在优化之前的代码逻辑,我在开...
王中阳Go赞 5阅读 2.4k评论 2
Git 入门与实践
Git 入门与实践推荐:猴子都能懂的 GIT 入门Git --everything-is-loca 官方文档Git 教程-廖雪峰Git 的使用方式有很多。图形化 —— 小乌龟(Tortoise Git )、命令行—— git bash、IDE 集成等 ......目录1. 基础配置...
RainBow赞 1阅读 2.2k
openKylin 0.9.5版本正式发布,加速国产操作系统自主创新进程!
2023年1月12日,中国桌面操作系统根社区openKylin(开放麒麟)正式发布openKylin 0.9.5操作系统版本。此版本充分适应5G时代需求,打通平板,PC等设备,实现多端融合,弥补了国产操作系统的短板,有效推动国产操作...
openKylin赞 6阅读 7.5k
SegmentFault 思否技术周刊 Vol.78 — Git 必看技术补给
Git 的诞生是一个非常有趣的故事。1991年 Linus 开源了 Linux 内核,无数 Linux 爱好者在世界各地为 Linux 编写代码,那么问题来了,这些代码该如何管理呢?起初 Linus 使用 BitKeeper(BitMover 公司的版本控制软...
Beverly赞 3阅读 1.6k
openSSH升级公钥失效Permission denied (publickey)解决方案
背景centos系统升级openSSH后,服务器上无法再拉取代码,报错如下:原因服务器重新安装SSH后公钥改变,需要重新安装ssh-keygen -t rsa -C "邮箱地址"生成公钥,删除gitlab原有公钥,但是git pull依然报错如下:依...
兰俊秋雨赞 2阅读 1.3k
Git 分支管理策略汇总
我大概说了一些规则,但仔细想来,好像也并没有形成一个清晰规范的流程。所以查了一些资料,总结出下面这篇文章,一共包含四种常见的分支管理策略,分享给大家。
alwaysbeta赞 3阅读 941
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。