我有一个我每天工作的本地存储库和一个远程裸存储库,在那里我推送我的结果。我想在每次推送后将一些不受版本控制的本地文件(如.exe和.dll文件)复制到同一服务器上的单独目录(例如bin目录)中,是否可能? 我尝试使用钩子,但那些工作服务器端,因此我不知道如何分辨要复制的文件的位置。
答案 0 :(得分:2)
git的钩子不一定是“服务器端” - 你可以在任何存储库中都有钩子。但是,在从存储库中完成git push
之后,没有专门运行的钩子。可能足够接近的是post-commit
挂钩,因此每次在本地创建提交时,都可以将.exe
和.dll
文件复制到单独的目录中。
但是,如果你真的只是想在推送后复制,最简单的解决方案可能是设置一个git别名。例如,如果你这样做:
git config alias.push-and-copy \
'!sh -c "git push origin master && cp *.dll *.exe ~/bin"'
......你可以这样做:
git push-and-copy
...在您的存储库中,如果推送成功,将复制文件。 (我没有测试过那个别名,但我认为这是正确的。)