Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git推送整个项目,即使更改的文件很少。自动气象站_Git_Amazon Web Services_Amazon Elastic Beanstalk_Git Push - Fatal编程技术网

Git推送整个项目,即使更改的文件很少。自动气象站

Git推送整个项目,即使更改的文件很少。自动气象站,git,amazon-web-services,amazon-elastic-beanstalk,git-push,Git,Amazon Web Services,Amazon Elastic Beanstalk,Git Push,我正在使用Git通过Elastic Beanstalk将我们的应用程序推送到AWS。AWS已经创造了实现这一点的方法,尽管据我所知,它并不完全是一个传统的存储库。例如,我无法从Beanstalk项目中提取 我对推送过程中发生的事情感到困惑,为什么有时推送的数据比其他推送的数据多得多。我的典型过程如下 //create, edit files $ git add . $ git commit -m "message here" [master 7d38f1f] message here 5 fi

我正在使用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
明天,当我做我的第一推,它可能会是一个大的一次

问题暗示只发送更改,在上面的示例中,您可以看到这是真的。然而,明天当我来上班的时候,我的第一次推很可能和第一次类似。因此,有人正在失去对已发生变化的跟踪。我怎样才能记住它


谢谢

我原来的答案错了。这是最新的版本

正如我们可以从.git/config中看到的那样

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
在第一个日志中,您会看到注释-(强制更新),而在第二个日志中,您不会看到该注释。让我们更深入地了解“强制更新”

从手册:

-f
--力
通常,该命令拒绝更新远程引用,该远程引用不是用于覆盖它的本地引用的祖先。这面旗 禁用检查。这可能会导致远程存储库丢失 承诺;小心使用

至少在两种情况下,远程引用可能不是祖先:

  • 当它是ref本身时,当尝试推送相同的提交时
  • 当其他人更新远程存储库时,您的提交必须覆盖他们的更改
我相信其中一个案子是你的

或者它可能是AWS工具中的一个bug。以前,在本地进行更改后,远程存储库不会更新。也许这就是解决办法——用推的方式使用武力


我将深入研究这个问题,并在获得更多信息后更新答案。

我知道ELB不是一个存储库。我明白你说的一切。但我的问题是,为什么有些推力很大,而有些推力很小?我怎样才能让他们都保持身材矮小呢?一定有什么东西在跟踪变化。这是怎么回事?“我怎样才能让它保持清醒和正常工作?”蒂姆苏姆用详细信息更新了答案。还有一些悬而未决的问题。
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