相关疑难解决方法(0)

如何在Windows上的Git中创建文件执行模式权限?

我在Windows中使用Git,并希望通过一次提交将可执行shell脚本推送到git repo.

通常我需要做两个步骤(git commit).

$ vi install.sh
$ git add install.sh  
$ git commit -am "add new file for installation" # first commit
[master f2e92da] add support for install.sh
 1 files changed, 18 insertions(+), 3 deletions(-)
 create mode 100644 install.sh
$ git update-index --chmod=+x install.sh
$ git commit -am "update file permission"        # second commit
[master 317ba0c] update file permission
  0 files changed
  mode change 100644 => 100755 install.sh
Run Code Online (Sandbox Code Playgroud)

如何将这两个步骤合并为一步?git配置?Windows命令?

提醒:两个答案都很好,git add --chmod=+x file新git版本支持

参考: …

git

329
推荐指数
6
解决办法
15万
查看次数

在git中显示索引文件的权限

这涉及到另外一个问题我最近问存储在Dropbox的非纯仓库的计算机之间轻松移动,因此它可能是有帮助的阅读背景问题.

要点是fileMode不断报告某些文件的差异.我无法找到一种方法来重现它,但它经常发生.我注意到的是,该文件在两台机器上具有644权限,通常会在其中一台机器上报告755的差异.这让我觉得Git认为可执行位已设置,但我无法弄清楚我是否真的可以看到 Git 是如何设置该位的.

git permissions diff dropbox

12
推荐指数
1
解决办法
4496
查看次数

Elastic Beanstalk 删除配置更改时生成的文件

在 Elastic Beanstalk 上,使用基于 AWS Linux 2 的环境时,更新环境的环境属性(即环境变量)会导致所有生成的文件被删除。作为此更新的一部分,它也不会运行container_commands。

例如,我有一个 Django 项目,其中包含collectstatic容器命令:

05_collectstatic:
  command: |
    source $PYTHONPATH/activate
    python manage.py collectstatic --noinput --ignore *.scss
Run Code Online (Sandbox Code Playgroud)

这会将静态文件收集到一个称为staticfiles部署一部分的文件夹中。但是当我更新环境变量时,staticfiles它被删除了。这会导致应用程序上的所有静态文件被破坏,直到我重新部署为止,这是极其不可取的。

在基于 AWS Linux 1 的环境中不会发生此行为。差异似乎在于,基于 AWS Linux 2 的环境/var/app/current在环境变量更改期间会替换该文件夹,而基于 AWS Linux 1 的环境则不会执行此操作。

我该如何解决?

研究

我可以通过监视来验证在环境变量更改期间容器命令没有运行/var/log/cfn-init.log;没有新条目添加到此日志中。

滚动更新类型“禁用”和“不可变”都会发生这种情况。

即使我将环境命令转换为平台钩子,也会发生这种情况,尽管更新环境属性时钩子被列为正在运行。

在我看来,有两种潜在的解决方案,但我不知道其中任何一个的 Elastic Beanstalk 设置:

  1. 让环境变量更改保留/var/app/current而不是替换它。
  2. 让环境变量更改运行容器命令。

有关容器命令的 Elastic Beanstalk 文档表示“仅在环境创建和部署期间执行仅领导者容器命令,而每次配置或更新实例时都会执行其他命令和服务器自定义操作。” 这是 Elastic Beanstalk 中的错误吗?

相关问题:EB:在配置更改时触发容器命令/部署脚本

amazon-web-services amazon-elastic-beanstalk

6
推荐指数
1
解决办法
1084
查看次数