从生产文件夹创建一个git存储库 [英] Creating a git repository from a production folder

查看:106
本文介绍了从生产文件夹创建一个git存储库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一台生产网站的机器,我想在该机器上创建一个git存储库,以便使用git来管理网站。

所以第一件事我做的是在生产机器上创建一个空的.git存储库:

  mkdir回购
cd回购​​
mkdir production.git
cd production.git
git init --bare

在这个仓库下hooks / post-receive我已经添加了以下几行:

 #!/ bin / sh 
GIT_WORK_TREE = / var / www / production_website git checkout -f

然后我下载了文件夹将我的制作网站放入我的本地机器并启动git:

  cd production_website 
git init

code>

之后,我做了第一次提交:

  git add。 
git commit -m第一次提交

最后,我添加了远程存储库并做了我的第一次推动:

  git remote add origin ssh://myuser@productionmachine.com/repos/production.git 
git push origin master

但是当我进行推送时,它给了我以下错误信息:

  remote:fatal:该操作必须在工作树中运行

当接收到的挂钩被激活时,它会被触发。



做错了?

更新

在第一步中,创建如果我使用 git init 而不是 git init --bare 我在生产机器中清空.git存储库错误消息:

 远程:错误:拒绝更新签出分支:refs / heads / master 
远程:e rror:默认情况下,更新非裸仓库中的当前分支
remote:error:被拒绝,因为它会使索引和工作树不一致
remote:错误:将需要'git reset --hard'来匹配
remote:error:工作树到HEAD。
remote:错误:
remote:错误:您可以在远程存储库中将'receive.denyCurrentBranch'配置变量设置为
remote:error:'ignore'或'warn',以允许推入
remote:错误:当前分支;然而,除非你
remote:error:安排它更新它的工作树来匹配你在
remote:error:other方面推送的内容,否则不建议这样做。
remote:error:
remote:error:为了压制此消息并保持默认行为,请将
remote:error:'receive.denyCurrentBranch'配置变量设置为'拒绝'。


解决方案

我宁愿保持回购仓位,然后在post-receive hook

  cd / path / to / non-bare / repo 
git --git-dir / path / to / non-bare / repo / .git --work-tree = / path / to / non-bare / repo pull

即:

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆