使用集成到源代码控制的“eb deploy”后,CodeCommit远程仓库会更新(我可以在AWS Console中看到提交在那里,在云仓库中)并且EC2实例正在运行新部署的版本(可以也可以通过AWS控制台查看。
问题:所有事情都已同步,但GIT说远程仓库背后的一个提交实际上是。
当我输入“git status”时,它说: 您的分支通过1次提交超过“codecommit-origin / master”。 (使用“git push”发布您的本地提交)
当我输入“git log codecommit-origin / master”时,不会显示最后一次提交。
为什么GIT说我的本地仓库在远程CodeCommit仓库中是最新的?推送到CodeCommit的“eb deploy”实际上不是“git push”命令吗?
答案 0 :(得分:0)
我实际上已经“重新运行”命令 eb init -i 再次通过设置并且工作正常:
...
Note:
Elastic Beanstalk now supports AWS CodeCommit; a fully-managed source control service.
Do you wish to continue with CodeCommit? (y/n) (default is n): y
Select a repository
1) ppm
2) Create new Repository
(default is 2): 1
Select a branch
1) master
2) Create new Branch with local HEAD
(default is 1): 1
Do you want to set up SSH for your instances?
(y/n): n
然后我运行 git status 和 git log codecommit-origin / master ,现在可以正确同步:
$ git status
On branch master
您的分支机构与'codecommit-origin / master'保持同步。
无需提交,工作目录清理
答案 1 :(得分:0)
EB CLI正在开发git push
,但它会构建自己的凭据来执行该推送,而不是使用aws git凭证帮助程序。
虽然CLI仍会设置AWS Documentation。
文档中指定的HTTPS凭据您的本地git存储库不同步这一事实是因为EB CLI使用单独的方法运行它的git操作,而不是在命令行中运行它们。您可以使用命令git fetch
将本地分支与远程同步,以便从git status
获取最新状态。
如果您使用的是OSX,则Keychain Access实用程序存在已知问题,解决方法在我提供的链接的第3.3节中指定。
答案 2 :(得分:0)
当你做eb init时,以及当你来到这个部分时:
注意:Elastic Beanstalk现在支持AWS CodeCommit;完全托管的源代码管理服务。要了解详情,请参阅文档:https://aws.amazon.com/codecommit/ 您是否希望继续使用CodeCommit?
你应该回答否(N)。这样,eb就不会成为另一个来源(codecommit-origin)。
我这么做的方式:
1.来自CodeCommit repo的git clone
2.没有CodeCommit的eb init
3.创建分支(例如开发,git分支开发)
4. eb使用development-env
5. eb deploy