2013-10-22 15 views
2

我知道这已被问到,但我似乎无法实现任何解决方案,并且我有点困惑。迁移git存储库服务器时无法访问原始文件的问题

我有两个在AWS EC2上托管的网站。它们使用express,css,jQuery,MongoDB等在node.js中编写.git存储库服务器是原始的开发人员计算机。

当我ssh到通过庆典的场所之一和

vi website/.git/config 

它包含:

[core] 
    repositoryformatversion = 0 
    filemode = true 
    bare = false 
[remote "origin"] 
    fetch = +refs/heads/*:refs/remotes/origin/* 
    url = [email protected]:website.git 
[branch "master"] 
    remote = origin 
    merge = refs/heads/master 

的网站上也有staging.website.com我必须独立ssh访问。在staging.website.com网站/ .git/config中的配置文件包含:

[core] 
    "" 
    logallrefupdates = true 
    "" 

而其余的相同。

我有网站的源代码,AWS登录,ssh访问这两个服务器。我想在我的Synology DS213或运行我们的一台服务器的虚拟化实例上建立一个新的存储服务器。我没有的是访问托管git存储库的原始计算机。 “oldurl.org”什么是创建新的托管存储库的最简单/最好的方法,以便我可以在本地PC上的网站上工作,将更改提交到存储库服务器,然后从那里将它们推送到我的EC2 。每当我尝试在本地设置一个新的回购站并将远程服务器添加到服务器时,在我所有的测试中,我都无法获得本地创建的文件以上载到服务器。它是否仅仅改变文件而不创建新的文件,如果它们只在本地添加的话?为了记录,我为rsa键设置了〜/ .ssh/config文件。基本上我想代替[email protected]我该怎么做呢?

编辑:有一件事我已经有点麻烦的理解是网站/ git的和site.git

之间的区别,如果您需要任何更多的细节或信息,请让我知道。我急于修复此问题,以便我可以再次安全地更改我的网站。原始开发人员不再管理他们,无法联系以获得帮助。

+1

我的git fu并不像我想的那样强壮。但是你应该可以用一个新的远程将配置改为一个空的存储库,然后运行'git push remote'。与SVN不同的是,所有git的“工作副本”本身都是存储库。 – datasage

+0

'site/.git'是一个git仓库,里面有一个工作树。 'site.git'是[裸回购](http://gitolite.com/concepts/bare.html),通常用于推送它,因为在推送后没有工作树可以更新/维护。 – VonC

回答

2

另一种方式来应用类似的解决方法是:

git remote set-url origin newurrl 

git remote man page

git remote set-url' <name> <newurl> [<oldurl>] 

将URL远程点更改为。
将第一个URL远程点设置为匹配的正则表达式<oldurl>(如果没有给出<oldurl>,则为第一个URL)到<newurl>
如果<oldurl>与任何URL都不匹配,则会发生错误并且没有任何更改。

0

固定做

git remote remove origin 

git remote add origin newurrl 
+0

意外。现在修好。 – shenk

+0

没问题。我删除了我以前的评论,并且今天将删除此评论。 – VonC