出于模糊,痛苦的操作原因,生产代码需要将代码检入主Git仓库。
然而,Capistrano 3,在部署时,确实:
execute :git, :clone, '--mirror', repo_url, repo_path
--mirror
选项隐含--bare
,它创建的目录结构没有.git
元数据。
有没有办法在Capistrano 3中覆盖它?
答案 0 :(得分:0)
由于您要从生产中提交代码(通常是严格的否 - 您应该从patch
创建diff
,并在本地应用它然后再推送),我假设您已经可以访问您的生产服务器。
这是Capistrano框架之外的灵魂。您需要执行以下操作:
http(s)
网址(因为否则您可能需要设置ssh密钥)但是,我建议创建一个补丁并按如下方式应用它:
git diff > diff.patch.date
scp server/path/to/diff.patch.date local/path/to/repo
git apply diff.patch.date
git add . && git commit -m "msg"
修改强>
重新阅读你的问题之后,似乎Capistrano正在创建一个简单的回购,因此你无法从那里做出提交。如果是这样的话,
git clone original_bare_rep non_bare_repo
git remote add upstream url/to/repo/hosting