git - 我如何使用git进行部署?

标签 git deployment

基本上我认为我可以使用 git 进行部署,就像 Heroku 提供的那些 Rails 云提供商一样。所以我在服务器上创建了一个应用程序,更改为该目录并在其中执行了 git init。 接下来,我创建了一个 http 服务器,其中 git-wep 指向该目录。现在我检查了一下,这也很好,然后编辑并提交到我的存储库。

现在,我接下来要做的就是推送到服务器并让它更新其工作目录作为提交后 Hook 。已部署。

但是 git 不让我 push 。也许我可以

You can set 'receive.denyCurrentBranch' configuration variable to 'ignore'

但我该在哪里做呢?我可以在哪里以及如何放置 Hook ?

最佳答案

最好让服务器上的存储库成为一个存储库(实际上没有工作副本 - 只有 .git 目录的内容),然后使用类似 git archive | tar -x -C /path/to/htdocs 的内容在 post-receive-hook 中将文件导出到服务目录中。

通过使用裸存储库作为目标,您可以完全避免推送到已 checkout 分支的问题。

要创建裸存储库,请传递 --bare初始化时标记:

git --bare init

关于git - 我如何使用git进行部署?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3553441/

相关文章:

git - 为什么我看到已经删除的远程分支?

git - 如何撤消不产生 merge 提交的 merge ?

git - 使用分支命名空间有效地备份多个版本的 git repo

visual-studio-2008 - 带有子目录的 IIS 网站部署为子目录中的页面抛出 404 错误

version-control - 在 ivy 中推广几个模块(集成 -> 里程碑)

macos - Delphi 生成的 Dylib 在 OSX 上的可靠部署

git - 如何从 merge 之前的提交创建分支?

git - 如何查看Intellij执行的git命令

python - 使用 Fabric 处理故障

Wildfly 9 上的部署失败