关于 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 命令来设置它们:

$ git config --global user.name 'Warren Turkal'
$ git config --global user.email 'wt@example.com'

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

$ cd .repo/manifests
$ git config user.name 'Warren Turkal'
$ git config user.email 'wt@example.com'

相关讨论

  • 并确保您没有将 --config-name 参数添加到 repo init,因为它仍然会要求您确认用户名和电子邮件
  • 投票赞成第二个建议

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

相关讨论

  • 但据我了解,我不能只在您提供的 git 命令中输入像"android-1.6_r1"这样的标签名称,并得到相当于"repo init -b android -1.6_r1;回购同步"。如果我错了,请纠正我,但如果我使用 git,我必须分别处理我感兴趣的每个版本的每个项目,对吗?
  • 是和不是。如果您将其作为一个 repo 处理并且不费心导出到另一个地方,则不需要单独处理每个。

以上是关于 git:Android repo init – 如何以非交互方式运行(或没有名称/电子邮件提示)的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>