Git 使用post-receive钩子推送到DEV服务器效果很好,但是可以';不要提交远程更改

Git 使用post-receive钩子推送到DEV服务器效果很好,但是可以';不要提交远程更改,git,git-post-receive,Git,Git Post Receive,git非常新,经过一段时间的阅读,我们已经设置了以下工作流: Github回购 本地回购(工作站和笔记本电脑) Dev Server-post-receive钩子从裸repo推送到提供文件的目录 这一直工作得很好,但今天我想提交在dev服务器上所做的更改,然后在本地将其撤回 但当我尝试阶段化并提交更改时,我收到了错误:“致命:不是git存储库…” 我想我理解为什么(因为包含所有文件的目录不是git repo),但是我如何在DEV服务器上提交更改并在本地将其撤回 任何帮助都将不胜感激——我是一

git非常新,经过一段时间的阅读,我们已经设置了以下工作流:

  • Github回购

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

  • Dev Server-post-receive钩子从裸repo推送到提供文件的目录

这一直工作得很好,但今天我想提交在dev服务器上所做的更改,然后在本地将其撤回

但当我尝试阶段化并提交更改时,我收到了错误:“致命:不是git存储库…”

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

任何帮助都将不胜感激——我是一名设计师,所以你可能不得不简单地解释一下,对不起

干杯


Ben

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


编辑:之前我建议使用
--git dir
选项,但这行不通,因为回购协议仍然是空的,git知道这一点。你可以用一些黑客来解决这个问题,但最好的办法可能是制作一个非裸体的克隆,将更改过的文件复制到其中,提交,然后回退。通过在需要的地方进行完全回购,您可以在将来避免麻烦。

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

将git存储库克隆到您提供服务的服务器上,而不是使用ftp、sftp、rsync或您可能使用的其他类似替代方案,并且每次更新都执行一次
git pull

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


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

谢谢您的帮助-我之所以这样设置是因为,这是我所能找到的关于如何设置一个可以推送到远程服务器的工作流的唯一信息。我是一名使用Tower GUI的设计师,所以对命令行没有太多信心-你会如何设置它?你知道一个教程可以解释如何使用所有这些吗?我一直在努力寻找任何解释Git本地开发、开发服务器和LIVE server工作流的东西,我理解这些工作流程-它们似乎都假设了一些知识。