【问题标题】:Dummy questions about setting up git on amazon cloud ec2关于在亚马逊云 ec2 上设置 git 的虚拟问题
【发布时间】:2013-08-26 08:26:01
【问题描述】:

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

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

我确实成功地创建了运行 PHP/MySQL 并使用弹性 IP 映射域的 EC2 实例。因此,该网站现在可以通过端口 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 服务器并处理项目?

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

【问题讨论】:

    标签: linux eclipse git amazon-ec2


    【解决方案1】:

    查看here 了解有关在亚马逊 ec2 上设置 git 的更多信息

    要让开发者使用你的 git,你只需要给他们 git server url。

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

    “首先,您需要将您的 EC2 身份添加到 ssh 身份验证代理。这可以防止以后 git 出现问题,即 收到错误“权限被拒绝(公钥)”。当试图做一个 git push 到 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 存储库。”

    【讨论】:

    • 非常感谢您的帮助,AlekCarlsen。我确实按照说明进行了操作,并且对 git 及其现在的工作方式有了更好的理解。我现在的解决方案是在 GitHub 上托管主存储库,并在需要时将其克隆到开发环境中(作为开发人员)。一旦更改完成并准备就绪,我将从 GitHub 中提取所有更改。 :)
    【解决方案2】:

    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
    

    【讨论】:

      【解决方案3】:

      我创建了一个包含所有详细信息的 GitHub gist,希望对您有所帮助 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
      

      【讨论】:

        猜你喜欢
        • 2019-05-04
        • 2015-10-24
        • 1970-01-01
        • 1970-01-01
        • 2015-10-15
        • 1970-01-01
        • 1970-01-01
        • 2011-10-26
        • 2013-01-03
        相关资源
        最近更新 更多