- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用 Git 通过 Elastic Beanstalk 将我们的应用程序推送到 AWS。 AWS 已经创建了执行此操作的方法,尽管根据我的理解,它不完全是一个传统的存储库。因此,例如,我无法从我的 Beanstalk 项目中pull
。
我对 push
期间发生的事情以及为什么有时它推送的数据比其他的多得多感到困惑。我的典型流程如下
//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.
Remote ref 在至少两种情况下可能不是祖先:
我相信其中一个案例就是您的案例。
或者它可能是 AWS 工具中的错误。以前有 another issue ,在本地进行更改后,远程存储库不会更新。也许这就是解决方法 - 通过 push 使用强制。
我将更深入地研究这个问题,并在我获得更多信息后更新答案。
关于即使更改了几个文件,Git 也会推送整个项目。 AWS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21052774/
今天小米米家官方微博宣布,小米手表尊享版开启限量定金预售,3 月 3 日早 10 点起支付尾款。购买即赠 399 元小米真无线蓝牙耳机 Air 2。 小米手表尊享版相比普通版核心没有变化,采用
今天下午,小米官方公布了小爱触屏音箱Pro 8,可以看到触控屏幕尺寸比较大,音箱上“长”了一个平板。据悉,小米小爱触屏音箱Pro 8具有白色的配色设计,下方有一个长条状的扬声器,上方带有一个尺寸比较
我是一名优秀的程序员,十分优秀!