Abh*_*han 11 git hook bitbucket git-checkout
在网上进行大量搜索的结果是pre-checkout
git 中的钩子还没有实现.原因可能是:
我的问题在于:
我已经实现了pre-commit
,post-merge
和post-checkout
挂钩维护每个分支不同的数据库备份.
场景:现在我提交数据库的备份时使用pre-commit
hook 保存在文件中.当我签出分支或合并时,使用post-merge
&post-checkout
hooks 恢复存储在文件中的数据库.现在的情况是,如果有人在提交和签出后对数据库进行了更改,则更改将丢失,因为数据库未备份.结帐成功,因为文件结构没有变化.
所以在这种情况下我想要一个pre-checkout
钩子来处理上面场景中备份数据库的任务.
小智 8
您可以模拟pre-checkout
git hook:
#!/bin/bash
# .git/hooks/pre-checkout
export PRE_CHECKOUT=true
git switch --quiet -
BRANCH=$(git branch --show-current)
echo "first go back to $BRANCH branch to do stuff"
git switch --quiet -
Run Code Online (Sandbox Code Playgroud)
调用此脚本post-checkout
,它将切换回源分支执行操作,然后再次返回目标分支。它使用PRE_CHECKOUT
环境变量来跟踪自己的执行,因此post-checkout
钩子需要一些逻辑只执行一次:
#!/bin/bash
# .git/hooks/post-checkout
# confirm the environment variable exists and it is 'true'
if [ ! -z $PRE_CHECKOUT ] && $PRE_CHECKOUT
then
exit 0
fi
. .git/hooks/pre-checkout
BRANCH=$(git branch --show-current)
echo "now in $BRANCH branch doing post-checkout stuff"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2577 次 |
最近记录: |