使用post receive hook推送到DEV服务器效果很好 - 但是不能提交远程更改

时间:2011-12-01 02:21:59

标签: git git-post-receive

git非常新,经过一些阅读后,我们设置了以下工作流程:

  • Github repo

  • 本地回购(工作站和笔记本电脑)

  • 开发服务器 - 发布接收挂钩从裸存储库推送到提供文件的目录

这一直很好但今天我想提交在开发服务器上进行的更改,然后在本地将它们拉回来。

但是当我尝试暂存并提交更改时,我收到错误:“致命:不是git存储库......”

我想我理解为什么(因为包含所有文件的目录不是git repo)但是我如何在DEV服务器上提交更改并将其拉回本地?

任何帮助都会非常感激 - 我是一名设计师,所以你可能不得不解释这个很抱歉。

干杯

2 个答案:

答案 0 :(得分:0)

我不完全确定你的设置是不是一个好主意 - 拥有更多克隆是很便宜的,并且避免做任何奇怪的事情。

编辑:以前我建议使用--git-dir选项,但这不起作用,因为回购仍然是裸的,Git知道它。你可以用一些hackery解决它,但最好的办法是制作一个非裸克隆,将更改的文件复制到其中,提交并推回。通过在您需要的地方实际拥有完整的回购,您可以在将来为自己省去麻烦。

答案 1 :(得分:0)

要将任何内容提交到Git,它需要是一个git存储库。

将git存储库克隆到您所服务的服务器,而不是ftp,sftp,rsync或您可能正在使用的其他类似替代方案之一,并为每次更新执行git pull

这样,您可以从服务器提交并推送到github。

Git pull非常优化,甚至可以减少需要传输到服务器的数据量。不仅如此,在您的服务器上安装git repo总是一个好主意,因为您可以在一瞬间内使用单个命令切换分支,标记并移动到历史记录中的任何时间点。

相关问题