Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.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
如何更改所有Android回购项目的用户名和电子邮件?_Android_Git_Cyanogenmod_Repo - Fatal编程技术网

如何更改所有Android回购项目的用户名和电子邮件?

如何更改所有Android回购项目的用户名和电子邮件?,android,git,cyanogenmod,repo,Android,Git,Cyanogenmod,Repo,我使用谷歌的repo工具为我的安卓设备下载了CyanogenMod源代码。我正确地设置了源代码树,这可以从我能够从头构建自己的非官方ROM这一事实得到证明 在发现了一些小错误之后,我现在想通过执行repo上传来为该项目做出贡献。不幸的是,我在运行“repo init”时使用了一个听起来粗俗的用户名和伪造的电子邮件地址。我不想我的上传被贴上粗俗的、政治上不正确的名字 “似乎”有一个repo选项可以更改用户名:“--config name”。但令人惊讶的是,即使在我进行了一次新的“repo-sync

我使用谷歌的repo工具为我的安卓设备下载了CyanogenMod源代码。我正确地设置了源代码树,这可以从我能够从头构建自己的非官方ROM这一事实得到证明

在发现了一些小错误之后,我现在想通过执行repo上传来为该项目做出贡献。不幸的是,我在运行“repo init”时使用了一个听起来粗俗的用户名和伪造的电子邮件地址。我不想我的上传被贴上粗俗的、政治上不正确的名字

“似乎”有一个repo选项可以更改用户名:“--config name”。但令人惊讶的是,即使在我进行了一次新的“repo-sync”之后,用户名和电子邮件的更改也只会影响到“.repo/manifests.git/”目录中的两个配置文件。我的新用户名和电子邮件不会传播到存储项目元信息的“.repo/projects/”下的配置文件

我的清单配置和“.repo/projects/”下的配置文件之间的用户名差异对我尝试执行“repo上载”造成了严重破坏,因为ssh公钥等方面存在明显的身份验证问题

是否有一种高级方法可以将“repo init--config name”所做的更改传播到我的所有repo项目中


出于某种原因,“git config--global user.name”(以及“user.email”)即使在“~/.gitconfig”中可以看到更改,也无法工作。我能想到的唯一其他解决方案是使用GNU工具,如find、sed和grep,强制执行搜索和替换操作(我不确定在“.repo/projects/”下是否有二进制文件)

所以你是说你用过,但没有用。你也试过了吗?嗯,你的链接给了我一个提示。显然,项目元信息存储在单独的git目录中(我假设源代码被下载到一个大的“repo”中)。因此,我深入到每个.git目录并执行“git config user.name foo”。因此,基本上我可以做一些比通过管道传输到sed的“grep-rl*”更高级的事情,比如:
find-ipath“*.git”-type d-exec sh-c'cd{};pwd;git config user.email;git config user.name'
您应该能够执行类似于
repo forall-c“git config user.name foo”
的操作来更改每个git项目中的配置。另外,请注意,更改当前用户名设置并不一定会更改您过去提交的用户名(即使它们只是本地的)。如果是这样的话,你可能需要考虑重写你的一些提交。好的,这可能是我正在寻找的解决方案。repo是一款记录不清的软件;-)所以你是说你用过,但没有用。你也试过了吗?嗯,你的链接给了我一个提示。显然,项目元信息存储在单独的git目录中(我假设源代码被下载到一个大的“repo”中)。因此,我深入到每个.git目录并执行“git config user.name foo”。因此,基本上我可以做一些比通过管道传输到sed的“grep-rl*”更高级的事情,比如:
find-ipath“*.git”-type d-exec sh-c'cd{};pwd;git config user.email;git config user.name'
您应该能够执行类似于
repo forall-c“git config user.name foo”
的操作来更改每个git项目中的配置。另外,请注意,更改当前用户名设置并不一定会更改您过去提交的用户名(即使它们只是本地的)。如果是这样的话,你可能需要考虑重写你的一些提交。好的,这可能是我正在寻找的解决方案。repo是一款记录不清的软件;-)