将数据推送到裸git仓库时,如何自动将数据推送到git-repo?

丹尼斯

将数据推送到裸git仓库时,如何自动将数据推送到git-repo?

gitrepo - the name of my bare repo, I push to this repo from my desktop
sandbox - the name of a git repo, should automatically contain up-to-date data

每次推送到gitrepo后,沙箱存储库应自动包含最新数据。

我考虑过不使用裸仓库,而直接将其推送到沙箱,而将其推送到非裸git仓库是不可能的。因此,人们推荐的解决方案是一个接收后挂钩,该挂钩将使数据在/ etc / puppet / environments / sandbox /下可用。

[root@puppet environments]# cat gitrepo/hooks/post-receive
#!/bin/sh
cd /etc/puppet/environments/sandbox/
git pull origin
[root@puppet environments]#

不幸的是,这个钩子也没有任何作用。我看过http://bare-vs-nonbare.gitrecipes.de/提供的示例(http://utsl.gen.nz/git/post-update,但我简直不敢相信自动将回购提交推到另一个回购应该需要86行代码。

周二

当您使用各种git钩子中的某些(或什至全部)钩子(肯定包括)时post-receive,环境变量GIT_DIR将设置为.(!),这意味着,如果您使用cd /etc/puppet/environments/sandbox并运行任何其他git命令,它将在repo中查找存储库/etc/puppet/environments/sandbox,即使那是一个非公开的仓库,它的git管理的内容实际上也在/etc/puppet/environments/sandbox/.git

如果您简单地添加以下内容,则简单的测试钩可能会开始为您服务(使其更难为他人使用):

unset GIT_DIR

在使用git命令之前。

(请注意,git pull如果最近一次的推送是例如对side-project分支的推送,添加标签的操作或其他任何使沙盒的分支保持不变的操作,那么盲目地执行a都是有效的,但会导致过度杀伤。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将分支更改推送到 Git Repo?

在特定提交时从git / svn repo推送到git / branch

如何通过ssh将git repo推送到远程服务器?

mean.io推送到git repo

git将所有分支从repo1推送到repo2

Git / Gerrit将repo1推送到所有分支的repo2

如何忽略大文件并推送到git repo

克隆没有历史记录的git repo,并让原始repo能够将更改推送到浅层repo

Spring Cloud Config Server 也可以将配置更新推送到远程 git repo 吗?

为什么我无法将文件推送到My Git Repo中

在没有--bare的情况下将新的git repo推送到服务器

每次从master拉出后如何将本地更改应用于git repo而不推送到master

用户推送到远程git repo时如何执行某些操作

如何 Git 从 repo A 的分支 B 推送到 repo C 的分支 D?

如何在推送时自动部署git repo的子模块?

从Eclipse推送到Github Repo,如何隐藏敏感数据,但公开repo?

推送到另一个git repo

Git Repo限制文件名不被推送到GitHub

通过ssh推送到个人git repo:权限被拒绝

在yeoman生成器中推送到git repo?

一旦我推送到git repo,如何将我的代码推送到我的VPS?

将 repo 从命令行推送到远程

将新代码库推送到现有 repo 的分支

将本地 repo 从 master 更改为 main 以将文件推送到 github 上的 master repo

收到错误消息:将Pod推送到私有Cocoapods Repo时使用未声明的类型

在推送时从远程git repo发送消息

将 Git 仓库推送到 Bitbucket

Jenkins:将 repo 分支“暂存”推送到暂存服务器,并将“生产”分支推送到生产服务器

如何正确删除推送到Git仓库的敏感数据?