我正在使用
Git通过Elastic Beanstalk将我们的应用程序推送到AWS. AWS已经创建了实现此目的的方法,尽管根据我的理解,它并不是一个传统的存储库.所以,例如,我无法从我的Beanstalk项目中获取.
我对推送过程中发生的事情感到困惑,为什么有时它会推送比其他数据更多的数据.我的典型过程如下
//create, edit files
$git add .
$git commit -m "message here"
[master 7d38f1f] message here
5 files changed, 27 insertions(+), 19 deletions(-)
$git aws.push
Counting objects: 5131, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (4930/4930), done.
Writing objects: 100% (5131/5131), 40.70 MiB | 391.00 KiB/s, done.
Total 5131 (delta 1487), reused 0 (delta 0)
remote: processing
To https://exampleLocation
+ 7f9d9dd...7d38f1f HEAD -> master (forced update)
现在也许我会编辑一些文件然后再做一次推送.这次它会更小/更快
$git add .
$git commit -m "message2"
[master e2f4412] message2
1 file changed, 1 insertion(+)
$git aws.push
Counting objects: 9, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (5/5), 472 bytes | 0 bytes/s, done.
Total 5 (delta 3), reused 0 (delta 0)
remote:
To https//exampleLocation
7d38f1f..e2f4412 HEAD -> master
明天,当我第一次推动时,它可能会再次成为一个重要的…
This问题暗示只发送更改,在上面的示例中,您可以看到这是真的.然而,明天我上班的时候,我的第一次推动可能与第一次相似.所以有人正在失去已经改变的东西.怎么才能让它记住?
谢谢
最佳答案 我错误地回答了原来的答案.这是更新版本.
正如我们从.git / config中看到的那样
[alias "aws.elasticbeanstalk"]
remote = !.git/AWSDevTools/aws.elasticbeanstalk.push --remote-url
push = !.git/AWSDevTools/aws.elasticbeanstalk.push
[alias "aws"]
push = !git aws.elasticbeanstalk.push
git aws.push是.git / AWSDevTools / aws.elasticbeanstalk.push Ruby脚本的调用,其中包含以下代码:
commit = opts[:commit] # if commit is specified with --commit
commit = 'HEAD' if commit.nil?
destined_env = opts[:env] || AWS::DevTools.environment()
if !destined_env.nil?
puts "Pushing to environment: #{destined_env}"
end
`git push -f #{remote} #{commit}:refs/heads/master`
status = $?.exitstatus
exit status
在第一个日志中,您会看到注释 – (强制更新),您在第二个日志中看不到该注释.让我们更深入地了解“强制更新”.
从git-push手册:
-f
–force
Usually, the command refuses to update a remote ref that is not an ancestor of the local ref used to overwrite it. This flag
disables the check. This can cause the remote repository to lose
commits; use it with care.
远程参考可能不是至少两种情况的祖先:
>当它是ref本身时,在尝试推送相同的提交时
>当其他人更新远程存储库时,您的提交必须覆盖其更改
我相信其中一个案例是你的.
或者它可能是AWS工具中的错误.以前有another issue,在本地进行更改后,远程存储库未更新.也许这就是解决方法 – 用推力强行使用.
我将深入研究这个问题,并在获得更多信息后更新答案.