我正在使用的服务(Overleaf)提供了一个git存储库接口。我想安装一个post-receive hook,这样当我的协作者和我提交对存储库的更改时,我们将在Slack中收到通知。通常,这可以使用例如Chris Eldredge的git-slack-hook轻松完成,但它需要在服务器上安装post-receive挂钩。在目前的情况下,我没有直接访问git存储库服务器的文件系统。我已尝试在我的本地副本中创建.git/hooks/post-receive
,但git
将不允许我将其签入:
# git add .git/hooks/post-receive
error: Invalid path '.git/hooks/post-receive'
error: unable to add .git/hooks/post-receive to index
fatal: adding files failed
当您无法直接访问git存储库服务器的文件系统时,安装post-receive挂钩的正确步骤是什么?
注意:这是不是 GitHub。
答案 0 :(得分:1)
我总是在本地跟踪我的Overleaf项目并从本地同步到github。您可以将github项目中的github集成添加到所需的松弛通道中,如
中所述https://get.slack.help/hc/en-us/articles/201824286-Setting-up-the-GitHub-app
有使用github组织的链接,以及减少该页面上松弛所需的权限。
一个人可以自动化这个,说cron从Overleaf拉到本地,然后推送到Github。我没有寻找基于云的同步解决方案,但可能是它可以实现,无需本地同步。当你不在线时,它会起作用,这可能很重要,比如在两个以上的小组中。
请注意,即使未添加版本标记,您也会获得在Overleaf上进行的所有更新。这将导致无用的提交消息“背面更新”。我还没有针对此问题的非手动解决方案,因为我没有自动化我自己的系统。
使用Overleaf的另一种方法是使用SageMath Cloud(我没有足够的声誉来发布链接)。这种方法更具技术性,我有合作者不想处理它,所以它可能不适合你。另一方面,您可以获得完整的终端,访问计算工具,并可以像在本地一样管理您在git存储库中的工作。然后在提交后与github同步,松弛整合将处理剩下的工作。
任何一种方法都可以从post commit钩子中获益,以便在提交时自动推送到github,例如可以在这里找到:
答案 1 :(得分:0)
如果没有访问服务器或服务来解决这个问题,让你添加一个git hook,似乎没有办法解决这个问题。 背面文件似乎是由他们完全控制的文档协作的托管,因此您无法获得任何放置git挂钩的权限。看起来他们的服务是为非git用户构建的,他们只是添加了一个git API,因此你可以像git-repository一样访问你的文件。 对您而言,最好的解决方案是直接向Overleaf支持部门寻求解决方案,或者切换到真正的解决方案。 git托管服务。