2

使用集成到源代码控制的“eb deploy”后,CodeCommit 远程存储库被更新(我可以在 AWS 控制台中看到提交存在,在云存储库中)并且 EC2 实例正在正确运行新部署的版本(也可以看到它通过 AWS 控制台)。

问题:所有的东西都是同步的,但 GIT 说远程仓库是它背后的一个提交,实际上是。

当我输入“git status”时,它会说:您的分支领先于 'codecommit-origin/master' 1 次提交。(使用“git push”发布你的本地提交)

当我键入“git log codecommit-origin/master”时,不显示最后一次提交。

为什么在 AWS 控制台中明确远程 CodeCommit 存储库是最新的时,GIT 说我的本地存储库领先于远程存储库?可能是“eb deploy”推送到 CodeCommit 实际上不是“git push”命令吗?

4

3 回答 3

1

当你在做 eb init 时,当你来到这部分时:

注意:Elastic Beanstalk 现在支持 AWS CodeCommit;完全托管的源代码控制服务。要了解更多信息,请参阅文档:https ://aws.amazon.com/codecommit/ 您是否希望继续使用 CodeCommit?

你应该回答否(N)。这样,eb 就不会创建另一个来源(codecommit-origin)。

我这样做的方式是:
1. 来自 CodeCommit 存储库的 git clone。
2. 没有 CodeCommit 的 eb init。
3.创建分支(例如开发,git分支开发)。
4. eb 使用 development-env
5. eb 部署

于 2017-08-27T11:06:24.493 回答
0

EB CLI 在幕后进行了git push操作,但它构建了自己的凭据来执行该推送,而不是使用 aws git 凭据帮助程序。

尽管 CLI 仍将设置AWS 文档中的文档中指定的 HTTPS 凭证。

您的本地 git 存储库不同步的事实是因为 EB CLI 使用与在命令行中运行它们不同的方法运行它的 git 操作。您可以使用该命令git fetch将本地分支与远程同步,以从git status.

如果您使用的是 OSX,则 Keychain Access 实用程序存在一个已知问题,解决方法在我提供的链接的第 3.3 节中指定。

于 2017-01-11T19:01:30.930 回答
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 statusgit log codecommit-origin/master,现在事情已经正确同步了:

$ git status
On branch master
你的分支是最新的'codecommit-origin/master'。
没有什么可提交的,工作目录干净

于 2017-01-04T02:45:57.800 回答