关于在亚马逊云ec2上设置git的虚拟问题

时间:2013-08-26 08:26:01

标签: linux eclipse git amazon-ec2

首先,为我可能会抛出的虚假问题道歉。如果你能指出我应该从哪里开始的方向,那就太好了。

我完全不熟悉版本控制(以及git)和云系统。但是,我必须在AWS EC2实例上开发基于php web的应用程序,并为未来的开发人员提供代码。

我成功创建了运行PHP / MySQL的EC2实例,并使用弹性IP映射域。因此,该网站现在可以通过80端口公开访问。

我还使用$sudo yum install git安装了git并配置了user.name和user.email

然后,我转到网站的根文件夹(例如public_html)并运行'git init'创建折叠“.git”然后我使用“git add .”添加文件并提交“ git commit -m ‘initial upload’

这是正确的方法吗?是否可以将项目文件夹放在/ public_html(任何人都可以访问)。

如果上面没问题,那么我应该从哪里开始? 我想在EC2上运行git服务器,允许开发人员从他们的本地机器(例如Eclipse)连接,同时能够保留备份并比较代码之间的不同。

我想给开发人员什么细节,以便他们可以连接到git服务器并处理项目?

我快速指导或几个关键词做更多的研究会有所帮助。

3 个答案:

答案 0 :(得分:10)

查看here,了解有关在amazon ec2上设置git的更多信息

允许开发人员使用你的git,你只需要给他们git服务器url。

直接引用我正在链接的网站。

  

“首先,您需要将您的EC2身份添加到ssh   验证代理。这可以防止git之后的问题,即   在尝试执行此操作时收到错误“Permission denied(publickey)。”   git推送到EC2存储库。

ssh-add path/to/privateEC2key.pem
     

现在您可以继续在EC2上创建git存储库   实例

ssh username@hostname.com 
mkdir the_project.git 
cd the_project.git 
git init --bare
     

所以这里没有多少,我们所做的就是创建一个空的存储库   然后离开。现在,在本地计算机上,您可以执行类似的操作   以下内容:

cd the_project 
git init
git add . 
git commit -m "Initial git commit message" 
git remote add origin username@hostname.com:the_project.git 
git config --global remote.origin.receivepack "git receive-pack" 
git push origin master
     

'git config'命令是我发现必须能够修复的   推送到EC2存储库。“

答案 1 :(得分:3)

Alex提到的链接为在ec2上设置git提供了一个很好的起点。但我遵循了这里提到的一种不同的方法。 link。从页面直接引用:

"在没有PEM密钥的情况下使用SSH连接" :因此,要么添加ec2私钥并将其作为实体添加到ssh身份验证代理中,要么为您的用户创建一个新的ssh密钥并使用它。要遵循的步骤是:

创建SSH密钥

首先,您需要导航到本地计算机上的.ssh文件夹:

cd
cd .ssh

如果此文件夹不存在,请使用mkdir进行此操作。

进入本地计算机上的ssh文件夹后,应该在/Users/yourusername/.ssh中执行以下操作生成密钥。

ssh-keygen -t rsa -b 1024

当提示输入文件名保存密钥时输入id_rsa_aws,当提示输入密码时请留空。

在.ssh目录中,执行以下命令并将输出复制到以后粘贴。

cat id_rsa_aws.pub

现在使用您的PEM密钥

连接到您的AWS实例
ssh -i path/to/yourkeyname.pem ubuntu@xx.xxx.xxx.xxx

进入

echo 'the key you copied from id_rsa_aws.pub' >> .ssh/authorized_keys
chmod 640 .ssh/authorized_keys
chmod 750 .ssh

现在你去你的机器并输入

cd desired directory
git clone ubuntu@xx.xxx.xxx.xxx:<path_to_your_just_created_git_server>

如果您执行了上述所有步骤,则唯一的警告是

warning: You appear to have cloned an empty repository.

没关系。现在,您可以将所有代码复制到克隆目录中,并按照以下步骤操作:

git add . 
git commit -m "Initial commit"
git push origin master // If working on master branch

答案 2 :(得分:0)

我创建了GitHub要点,并提供了所有详细信息,希望对您有所帮助 https://gist.github.com/eslam-mahmoud/35777e4382599438023abefc9786a382

//add your EC2 .pem file to ssh kys
ssh-add ~/aws/mypemfile.pem 

//create bare repo on AWS EC2 webserver and deploy on demand
mkdir ~/git/the_project 
cd ~/git/the_project
git init --bare

//create local repo and track remote one
cd ~/git/the_project 
git init
git add . 
git commit -m "Initial git commit message" 
git remote add aws ubuntu@1.1.1.1:~/git/the_project 
git config --global remote.origin.receivepack "git receive-pack" 
git push aws master
//create tag
git tag -a v0.1 -m "my version 0.1"
//push tags
git push aws --tags

//Or you have one so you push your updates 
git remote add aws ubuntu@1.1.1.1:~/git/the_project 
git config --global remote.origin.receivepack "git receive-pack" 
git push aws master
//create tag
git tag -a v0.1 -m "my version 0.1"
//push tags
git push aws --tags

//on server create another local repo that track the bare one to deploy
git clone ~/git/the_project
cd ./the_project
//checkout tag
git checkout v0.1
//install clear cache ...
npm install