如何根据git存储库来源I';自动更改我的本地git配置`user.email`;我是从哪里克隆的?
我在笔记本电脑上主要使用两种类型的存储库,一方面用于我的工作项目,另一方面用于oss项目,但它们在如何根据git存储库来源I';自动更改我的本地git配置`user.email`;我是从哪里克隆的?,git,Git,我在笔记本电脑上主要使用两种类型的存储库,一方面用于我的工作项目,另一方面用于oss项目,但它们在git config--list中使用不同的user.email(相同的user.nametho) 我想知道,当我克隆一个新项目时(知道全局配置已设置为我的oss项目),是否有办法从一开始就正确设置user.email(存储库的本地配置) 原因是,我时常忘记手动设置我工作项目的本地配置,最终推送与错误用户(即oss用户)签署的提交,然后我不得不重新设置最后N个提交的基础,这可能非常烦人。Git本身无
git config--list
中使用不同的user.email
(相同的user.name
tho)
我想知道,当我克隆一个新项目时(知道全局配置已设置为我的oss项目),是否有办法从一开始就正确设置user.email
(存储库的本地配置)
原因是,我时常忘记手动设置我工作项目的本地配置,最终推送与错误用户(即oss用户)签署的提交,然后我不得不重新设置最后N个提交的基础,这可能非常烦人。Git本身无法精确地完成您要求的操作。不过,有两种明显的方法可以获得相同的结果
- 其中一个使用了Git版本2.13中的一个新特性,名为
。在这里,您将使用存储库集合中的位置来确定如何配置项目。有关详细信息,请参阅includeIf
- 另一种方法是停止使用
进行克隆。而是编写自己的命令,其中包括运行git clone
,然后运行git clone
。为了在这里引用它,我将其命名为git config
,尽管您可能需要一个像git clone and config
这样的短名称 此命令可以是使用git cc
语法来运行多个命令,或者git可以找到名为的Git别名
的脚本,以便git clone and config
运行您的git clone and config
脚本。当然,如果您要编写自己的脚本,您可以随意调用它,并在不使用git clone and config
前缀的情况下调用它。使用git
前缀的唯一原因是让它感觉像是“git的一部分”,即使它是您自己编写的 有关此备选方案的详细信息,请参阅git
git clone
可以在git clone
时间在新克隆中设置配置值。因此,您可以将最后一部分简化为:
git clone -c 'user.email=A U Thor <thor@example.com>' <url>
小心<代码>git-c user.email=。。。clone做得不对,而git clone-c user.email=…做得对。在这里,
-c
的位置至关重要。Git本身无法精确地完成您所要求的任务。不过,有两种明显的方法可以获得相同的结果
- 其中一个使用了Git版本2.13中的一个新特性,名为
。在这里,您将使用存储库集合中的位置来确定如何配置项目。有关详细信息,请参阅includeIf
- 另一种方法是停止使用
进行克隆。而是编写自己的命令,其中包括运行git clone
,然后运行git clone
。为了在这里引用它,我将其命名为git config
,尽管您可能需要一个像git clone and config
这样的短名称 此命令可以是使用git cc
语法来运行多个命令,或者git可以找到名为的Git别名
的脚本,以便git clone and config
运行您的git clone and config
脚本。当然,如果您要编写自己的脚本,您可以随意调用它,并在不使用git clone and config
前缀的情况下调用它。使用git
前缀的唯一原因是让它感觉像是“git的一部分”,即使它是您自己编写的 有关此备选方案的详细信息,请参阅git
git clone
可以在git clone
时间在新克隆中设置配置值。因此,您可以将最后一部分简化为:
git clone -c 'user.email=A U Thor <thor@example.com>' <url>
小心<代码>git-c user.email=。。。clone做得不对,而git clone-c user.email=…做得对。
-c
的位置在这里至关重要。非常感谢!这真的很彻底。非常感谢!这真的很彻底。