AWS EB CLI + Codecommit:git status错误地显示部署后分支不同步

时间:2017-01-02 21:57:53

标签: git push aws-codecommit ebcli

使用集成到源代码控制的“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”命令吗?

3 个答案:

答案 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