9

首先,为我可能在这里提出的愚蠢问题道歉。如果你能指出我应该从这里去哪里,那就太好了。

我对版本控制(以及 git)和云系统完全陌生。然而,我不得不在 AWS EC2 实例上开发基于 php Web 的应用程序,并为未来的开发人员提供代码。

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

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

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

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

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

我想为开发人员提供哪些详细信息,以便他们可以连接到 git 服务器并处理项目?

我快速的方向或几个关键字做更多的研究会有所帮助。

4

3 回答 3

11

在这里查看有关在亚马逊 ec2 上设置 git 的更多信息

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

从我链接到的网站直接引用。

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

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 存储库所必需的修复程序。”

于 2013-08-26T08:31:58.603 回答
3

Alex 提到的链接为在 ec2 上设置 git 提供了一个很好的起点。但是我遵循了这里提到的一些不同的方法。链接。来自页面的直接报价:

“在没有 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
于 2014-09-28T21:57:36.573 回答
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
于 2018-07-18T06:17:56.233 回答