问题标签 [git-post-receive]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - 为什么阅读挂起我的 bash 脚本?
我在使用 Python 时遇到了类似的问题,readlines()
但我不确定这里是否相同。
该read
命令正在挂起我的 bash 脚本。
有想法该怎么解决这个吗?
git - 带有接收后脚本的远程 Git sparse-checkout
我正在尝试弄清楚如何执行以下操作(并弄清楚它是否可能)。
我有一个本地 git 存储库,其中包含许多用于各种事物的文件夹,但我希望能够使用 git 将我的网站部署到我的开发服务器,并且实际上只有一个文件夹的内容应该进入远程 webroot(只是文件夹,而不是文件夹本身,这很困难)。我让开发服务器的 git push 进入 Web 可访问文件夹之外的裸仓库,然后我使用接收后脚本将所有工作文件放入 webroot。但是,这会复制所有文件夹,显然我只希望在操作完成后移动一个特定文件夹的内容。
做一些研究,看起来稀疏结账会很合适。更新:我现在让它工作,它只会复制一个特定的文件夹,但我仍然没有让它忽略文件夹本身并只是拉取内容。我认为这与我添加到 .git/info/sparse-checkout 的路径/通配符有关,但我不确定排除目录但不排除其内容的模式是什么。
有没有好的方法来做到这一点?我应该只使用 post-receive 脚本手动复制我想要的目录的内容,而不是尝试直接使用稀疏结帐来完成吗?
我感谢任何人愿意提供的任何帮助。谢谢!
git - 远程服务器上的 Git 存储库和接收后挂钩
为了更好地理解 Git 和正确的 Web 部署工作流程,我遇到了另一面墙。我是服务器相关软件和 unix 命令的新手,所以在回答时请记住这一点。已经就类似主题提出了很多问题,但我没有找到任何关于特定推送和合并到远程存储库的接收后挂钩。
我为部署设置了 3 个阶段。
生产(远程服务器我假设是裸存储库)
^
暂存(远程服务器裸存储库)
^
开发(本地机器)
到目前为止,我已经在本地和暂存环境中启动并运行了 Git。我在登台服务器上设置了一个接收后挂钩。到目前为止,这似乎工作得很好,但似乎这个钩子不允许我推送可以在登台服务器上看到的分支。登台服务器仅提供处于 master 分支状态的页面。这可能是预期的行为。
我应该在登台服务器上使用这个钩子吗?我似乎可以使更改生效的唯一方法是首先合并到本地计算机上的主服务器,然后将其推送到登台。这似乎不对,因为如果更改需要调整。我将不得不撤消本地的合并?
我很确定裸存储库和接收后挂钩将在生产服务器上很好地工作。因为它真的应该只有一种状态。
这些可能都是正常行为,我的工作流程可能不正确。对此或指导的任何帮助表示赞赏。我对此进行了搜索,但没有找到任何明确的文档。
git - 使用 byobu 和 git post-receive hook
作为我的接收后挂钩的一部分,我签出存储库的 HEAD,然后运行我的启动命令。
所以当我做 git push 它工作正常。
问题是,当我通过 SSH 进入盒子时,我使用 byobu。有没有办法让 post-receive 挂钩在 byobu 会话中运行我的启动命令,这样当我 SSH 进入时,我可以看到我的应用程序正在运行?
git - 在脚本中捕获 git post-receive 错误
在 bash 脚本中,我执行
我检查它的退出状态。
在远程服务器上有一个 post-receive 钩子可以做一些事情。如果发生错误,接收后挂钩将以非零值退出。
但是,当 post-receive 钩子出错时, git push 正常退出。除非我专门检查特定错误字符串的输出(我不是),否则我的脚本认为一切正常。
有没有一种简单的方法可以确定接收后挂钩是否失败?
git - 使用 git post-receive 覆盖多个目录中的文件
我正在使用 git 来部署对服务器上文件的更改,但这些文件位于两个目录(/var/www 和 /user/myfiles)中,但我只想使用一个存储库来推送更改。所以我设置了一个 repo (/user/gitrepo),我认为,在寻找解决方案之后,最好的方法是使用 post-receive 覆盖其他目录中的文件,但我不知道如何使用钩子 post-receive 做我想做的事(我是一个 git noob)。任何人都可以帮忙吗?
需要明确的是,我在 user/gitrepo/www/file1 和 user/gitrepo/myfiles/file2 中有文件
我想将更改推送到 repo 并更新 var/www/file1 和 user/myfiles/file2。
谢谢!
(另外,如果你有一些你认为应该更好用并且也使用 git 的东西,你能给我一个详细的操作方法吗?)。
git - 将标签名称(版本号)附加到 git post-receive 挂钩中的 Zip 文件
在 Git 中,我试图在接收后挂钩中获取提交的版本号(通过使用标签)。
获得该标签后,我想压缩某个目录并将版本号附加到其中(例如:myplugin-2.0.1.zip),但我不确定如何在 post-receive 中获取提交的标签钩。
有谁知道如何在 post-receive 挂钩中正确获取提交的标签名称?
这是我到目前为止所拥有的,但 SOME_WAY_OF_GETTING_TAG_NAME 是我感到困惑的地方。
任何帮助将不胜感激。谢谢!
git - Github post-receive hook 自动拉取回滚
我在我的生产服务器上使用这样的东西,在 github 上设置为 post-receive 钩子,并且它基本上设置为每当它从 github 收到格式正确的请求时拉取特定分支上的更改。
现在,假设有人将糟糕的代码推送给 master,这会自动拉动生产并破坏一切。还原更改的最佳方法是什么,而不必通过 ssh 连接到生产服务器并手动签出旧代码?理想情况下,它就像再次推动一样简单。
谢谢!
git - 使用接收后挂钩创建 zip
我已经玩了一段时间的钩子了,但我似乎无法让post-receive
钩子按照我需要的方式工作。
在将更改推送到存储库后,我正在尝试post-receive
创建一个 zip 文件夹并将其放置在 git 存储库文件夹之外的某个位置。
git - 在推送通知邮件中添加 git diff
目前我正在使用 gitolite 来管理我的存储库和用户。每次推送后我都成功设置了通知邮件。命令是
通知邮件仅包含更改摘要。我想在该推送中添加每个修改文件的更改行。我知道编辑该 post-receive-email 文件并且必须使用 git-diff 命令。我的问题是
我必须使用的确切 git-diff 命令是什么..?我在那个 post-receive-email 文件中添加了该命令..?gitolite 中是否有可用的配置..?