【发布时间】:2013-10-30 16:30:54
【问题描述】:
我知道有人问过这个问题,但我似乎无法实施任何解决方案,我有点困惑。
我在 AWS EC2 上托管了两个网站。它们是用 node.js 编写的,使用 express、css、jQuery、MongoDB 等。git 存储库服务器是最初的开发者计算机。
当我通过 bash 和 ssh 进入其中一个站点时
vi website/.git/config
它包含:
[core]
repositoryformatversion = 0
filemode = true
bare = false
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@oldurl.org:website.git
[branch "master"]
remote = origin
merge = refs/heads/master
该网站还有一个 staging.website.com,我有单独的 ssh 访问权限。 staging.website.com website/.git/config 中的配置文件包含:
[core]
""
logallrefupdates = true
""
其余的都一样。
我有网站的源代码、AWS 的登录名、对两台服务器的 ssh 访问权限。我想在我的 Synology DS213 或在我们的一台服务器上运行的虚拟化实例上设置一个新的存储库服务器。我没有访问托管 git 存储库的原始计算机。 “oldurl.org” 创建新托管存储库的最简单/最佳方法是什么,以便我可以在本地 PC 上的站点上工作,将更改提交到存储库服务器,然后将它们从那里推送到我的 EC2 .每当我尝试在本地设置新的存储库并将远程服务器添加到服务器时,在我的所有测试中,我都无法将本地创建的文件上传到服务器。如果仅在本地添加文件,它是否仅更改文件而不创建新文件?作为记录,我为 rsa 密钥设置了一个 ~/.ssh/config 文件。本质上,我想代替 git@oldurl.com 我该怎么做呢?
编辑:我有点难以理解的一件事是 site/.git 和 site.git 之间的区别
如果您需要更多细节或信息,请告诉我。我很想解决这个问题,这样我就可以再次安全地更改我的网站。原始开发者不再管理它们,也无法联系以寻求帮助。
【问题讨论】:
-
我的 git fu 没有我想要的那么强大。但是您应该能够使用新的远程将配置更改为空存储库,然后运行
git push remote。与 SVN 不同,所有 git 的“工作副本”本身就是存储库。 -
site/.git是一个 git 存储库,其中签出了工作树。site.git是a bare repo,通常用于推送到它,因为推送后没有工作树需要更新/维护。
标签: git amazon-web-services ssh amazon-ec2