相关疑难解决方法(0)

Git - post-receive没有在windows上运行

我在Windows Server 2008 R2上运行XAMPP服务器.我正在运行Git 64bit版本2.16.1.windows.1我想post-receive在我从客户端进行推送后使用hook来更新我的网站.

MyProject.git在服务器上创建了一个裸项目并将其克隆到MyProject.

我的钩子是:

#!C:/Program\ Files/Git/usr/bin/sh.exe 
echo "Hook got triggered.." > hooks.txt
exec powershell.exe -NoProfile -ExecutionPolicy Bypass -File ".\hooks\post-receive.ps1"
Run Code Online (Sandbox Code Playgroud)

Powershell脚本是:

cd "C:/xampp/htdocs/webapp/myProject/"
git pull origin master
exec git-update-server-info
Run Code Online (Sandbox Code Playgroud)

我搜索了类似的问题而没有任何运气来解决问题.

如果我在powershell中手动运行脚本,它运行正常.根据我的日志,钩子甚至开火.

Apache上的Git看起来配置正确,因为我可以毫无问题地推送到远程,如果我在MyProject文件夹中对服务器进行拉动,我从repo获得的文件是正确的.

我错过了什么?

编辑:

我修好了我的钩子:

#!C:/Program\ Files/Git/usr/bin/sh.exe
echo "Hook got triggered.."
exec powershell.exe -NoProfile -ExecutionPolicy Bypass -File ".\hooks\post-receive.ps1"
Run Code Online (Sandbox Code Playgroud)

我的powershell脚本:

cd "C:/xampp/htdocs/webapp/myProject/"
unset GIT_DIR
git pull origin master
exec git-update-server-info
Run Code Online (Sandbox Code Playgroud)

我推送到远程时的响应是:

Counting objects: 3, done.
Delta compression using up to 8 …
Run Code Online (Sandbox Code Playgroud)

windows apache git

7
推荐指数
1
解决办法
451
查看次数

项目文件存储在git存储库`.git`文件夹中的哪个位置?

我为我的许多项目创建了一个远程存储库,因此它是我的目的地push.与git的意识形态相反,但它作为一个中央存储库.

但是,当我转到*.git服务器上的文件夹时,有一个表单的目录结构:

 - /branches
 - /hooks
   - applypatch-msg.sample
   - commit-msg.sample
   - etc
 - /info
   - exlude
 - /objects
   - 06
   - 1c
   - various hex numbers
   - pack
 - /refs
   - /tags
   - /heads
     - master
 - config
 - description
 - HEAD
Run Code Online (Sandbox Code Playgroud)

这里发生了什么,我敢肯定,如果我研究了git的内部工作,我将能够弄明白,但是项目文件在哪里?

更新

我用以下方式创建了回购:

  1. 有一个现有的本地git存储库
  2. 向本地添加了远程 git remote add origin git@site.co.za:project_name.git
  3. 在服务器上,创建了一个名为'git init --bare project_name.git`的基本存储库
  4. 从本地推送到远程 git push origin master

git github

2
推荐指数
1
解决办法
5820
查看次数

标签 统计

git ×2

apache ×1

github ×1

windows ×1