我使用git-svn开发一个远程SVN存储库,并在本地开发中使用git-flow工作流。
不幸的是,有几次我在特性分支上做了svn dcommit,而我只想使用dcommit母版。
我想要做的是创建一个pre-svn-dcommit钩子来检查我是否在主分支上。不幸的是,git似乎没有这样的钩子。
我确实找到了两种可能的方法/解决方案:
有何建议可以做到这一点?
发布于 2013-06-05 11:16:39
您可以创建一个Git别名,在尝试提交非主分支时引发错误:
svndcm = "!f(){ if [[ $(git branch --no-color | sed -n "s/\* \(.*\)/\1/p") == "master" ]]; then git svn dcommit; else echo "Error"; fi }; f"将上述行包括在[alias]文件的~/.gitconfig部分,然后使用git svndcm来提交更改。根据您的喜好修改别名和错误消息:)
发布于 2013-06-05 11:20:33
正如您注意到的,使用Git没有简单的解决方案。通过使用shell捕捉对git的调用并在调用git本身之前添加其他特性,我实现了类似的功能。
请参阅How can I avoid an accidental dcommit from a local branch,以获得一个应该完成您所追求的任务的脚本。
https://stackoverflow.com/questions/16936924
复制相似问题