我有2个远程回购:一个在bitbucket,另一个在amazon ec2。我最近添加了第二个。
git remote -v
ec2 ubuntu@xx.xx.xx.xx:/home/ubuntu/my_app.git (fetch)
ec2 ubuntu@5xx.xx.xx.xx:/home/ubuntu/my_app.git (push)
origin ssh://git@bitbucket.org/me/my_app.git (fetch)
origin ssh://git@bitbucket.org/me/my_app.git (push)
当我推动原点时效果很好。但是当我推向ec2时,它似乎运作良好,但是通过ssh
看不到它推动的任何东西。我已经完成了2次,但我没有任何消息来源。
这是ec2上的一个git目录:
ubuntu@ip-xx-xx-xx-xx:~/my_app.git$ ls -al
total 40
drwxrwxr-x 7 ubuntu ubuntu 4096 Mar 15 01:52 .
drwxr-xr-x 6 ubuntu ubuntu 4096 Mar 15 01:50 ..
drwxrwxr-x 2 ubuntu ubuntu 4096 Mar 15 01:52 branches
-rw-rw-r-- 1 ubuntu ubuntu 66 Mar 15 01:52 config
-rw-rw-r-- 1 ubuntu ubuntu 73 Mar 15 01:52 description
-rw-rw-r-- 1 ubuntu ubuntu 23 Mar 15 01:52 HEAD
drwxrwxr-x 2 ubuntu ubuntu 4096 Mar 15 12:04 hooks
drwxrwxr-x 2 ubuntu ubuntu 4096 Mar 15 13:30 info
drwxrwxr-x 10 ubuntu ubuntu 4096 Mar 15 13:30 objects
drwxrwxr-x 4 ubuntu ubuntu 4096 Mar 15 01:52 refs
我接受了这个建议Can't push to repository on EC2 - Could not resolve hostname,将ec2添加为远程git仓库。
这是推动之一:
$ git push ec2 master
Counting objects: 9, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 749 bytes | 0 bytes/s, done.
Total 6 (delta 3), reused 0 (delta 0)
To ubuntu@xx.xx.xx.xx:/home/ubuntu/my_app.git
123..123abc master -> master
注意:只有一个分支,gitk正确显示所有内容。它只是没有把任何东西推向ec2。
答案 0 :(得分:2)
您在EC2实例上创建的仓库是一个裸仓库。因此,您不会在那里看到任何代码文件,只有您的回购邮件的git blobs
。查看this和this。
检查代码是否实际被推送的方法是
ssh ubuntu@xx.xx.xx.xx #log-in to your EC2 server
git clone my_project my_project.git
现在在my_project
文件夹中,您将找到签出的实际代码。
因此,在这种情况下,您的正常工作流程将类似于
git push ec2 master #from your dev machine
ssh ubuntu@xx.xx.xx.xx #log-in to your EC2 server
cd my_project
git pull origin master #after last clone, the original bare repo became the origin repo for this clone
在上述之后,您推送的任何新代码也将在此处提供。
<强> 修改 强>
在你的情况下,你已经在使用bitbucket,所以我建议探索这个工作流程 - 从bitbucket克隆repo,并使用bitbucket作为参考点,在ec2和本地开发环境中。这将使您免受服务器上任何与备份相关的麻烦。您可以在bitbucket上添加多个ssh密钥,因此您需要在ec2上生成密钥并将公钥添加到bitbucket。
所以在这种情况下,
git clone https_bitbucket_url
git clone ssh_bitbucket_url