关于 git:Android repo init – 如何以非交互方式运行(或没有名称/电子邮件提示)

Android repo init - how to run non-interactively (or without name/email prompting)

我正在构建一个可以下载多个 Android 版本的脚本。我不想从头开始提取每个存储库,而是保留一个基本存储库,我可以在同步之前重新初始化到正确的版本(然后将结果复制到安全目录)。

但是,repo init 总是提示输入姓名和电子邮件地址,从而挫败了我的脚本尝试。我查看了 repo 源并尝试了 -q 之类的选项,但提示似乎来自底层 git 命令。

关于在没有交互的情况下执行 repo init -b 有什么建议吗?


经过测试的解决方案:如果您在全局 git 配置中设置了 user.name 和 user.email,repo 将不会提示您输入您的姓名/电子邮件。您可以通过运行以下 git 命令来设置它们:

1
2
$ git config --global user.name 'Warren Turkal'
$ git config --global user.email '[email protected]'

未经测试的可能解决方案:如果您只想为一个存储库设置名称和电子邮件,我认为您也可以在清单存储库中设置这些属性,而不是更改全局配置。为此,您可以从 repo 根目录执行以下操作:

1
2
3
$ cd .repo/manifests
$ git config user.name 'Warren Turkal'
$ git config user.email '[email protected]'


为什么不单独使用 git 呢?那是更具脚本性的方式。管道 git archive 到 tar 以导出或 git --work-tree=where/you/want/the/files checkout tag_name .