git windows post pull



我最近从svn进行了转换。我的服务器在Windows下(别怪我,这不是我的选择:}

我创建了一个有"主"one_answers"稳定"两个分支的回购。

在我的服务器上,我想从稳定的分支获取文件。

我做过:

git clone git://url/.git src
cd src
git checkout --track -b stable origin/stable

以前我有一个.bat脚本

cd my_repo_dir
svn update
echo APPLICATION_STAGE = 'production' > conf__init__.py
net stop apache2.2
net start apache2.2

它起了作用,现在有了git

cd my_repo_dir
git pull
echo APPLICATION_STAGE = 'production' > conf__init__.py
net stop apache2.2
net start apache2.2

gitpull之后,无论是成功的还是最新的,都不会执行任何操作。它只是在没有任何警告的情况下退出提示。

我想到了钩子。我创建了:

.git/hooks/post-receive
.git/hooks/post-update

两个文件的内容相同:

echo APPLICATION_STAGE = 'production' > conf__init__.py
net stop apache2.2
net start apache2.2

不,它也没有执行。。。也许我缺少已解释的声明行(*nix上的#!/bin/sh)但我不确定窗户上是什么。。。

几点:

  • 请确保路径上有git.exe。做一个where git,你必须得到类似的东西

    C:Program Files (x86)Gitbingit.exe
    

    如果使用git.cmd(来自C:\Program Files(x86)\git\cmd\git.cmd),则必须执行call git pull才能继续执行。我会说将git.exe添加到路径并开始使用它

  • 即使在Windows上,挂钩也必须具有shebang-#!/bin/sh才能正常运行。

  • 如果你想让一个钩子在拉动时运行,你可能想使用post-merge钩子。当你推送post-receivepost-update时,它们会在远程转发上运行。

git可能是围绕真实可执行文件的批处理包装器。使用call git pull

据我从文档中所知,只有当内容从远程位置推送时,这些挂钩才会启动。因此,对于pull,它们被忽略。

相关内容

  • 没有找到相关文章

最新更新