我使用git-svn
在远程SVN存储库上工作,并使用git-flow
工作流进行本地开发。
不幸的是,偶然的几次我在功能分支上做了svn dcommit
,而我只想dcommit
掌握。{/ p>
我想做的是创建一个pre-svn-dcommit
钩子,检查我是否在主分支上。不幸的是,git似乎没有附带这样的钩子。
我确实找到了两种可能的方法/解决方案:
有关如何实现这一目标的任何建议吗?
答案 0 :(得分:1)
您可以创建一个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
提交您的更改。根据您的喜好修改别名和错误消息:)
答案 1 :(得分:1)
正如您所说,使用Git本身没有简单的解决方案。我通过使用shell来捕获git
的调用并在调用git
之前添加其他功能来实现类似的功能。
请参阅How can I avoid an accidental dcommit from a local branch,了解一个应该完全符合您要求的脚本。