我可以为某个目录下的所有目录设置用户名/电子邮件吗?

Rol*_*lie 4 git

所以我的全局“user.email”为“myPersonalEmail@gmail.com”。但我还有一个文件夹来保存我的工作项目,组织方式如下:

repos/
  workRepos/
     databaseMonitor/
     salesWebapp/
  sudokuSolver/
  someCoolGame/
Run Code Online (Sandbox Code Playgroud)

我知道我可以将每个子存储库上的本地 user.email 设置workRepos/为“rollie@companyname.com”,但我宁愿将其直接设置在内部workRepos/,以便下面的所有项目将我的电子邮件解析为公司电子邮件,但我不这样做不要意外地提交带有错误身份的内容。

我犹豫是否要在 中初始化 git 存储库,因为某些工具会向我显示workRepos/存储库的内容,而不是我正在处理的内容。看起来 git 会有一些东西,允许像在存储库之上找到任何人时使用的文件一样,来覆盖全局设置。.git.settings

从推荐的类似问题中,我看到可以在全局 git 配置文件中提供一些配置,这可以工作,但我不喜欢让它变得复杂,而且如果我将存储库移动到新位置,一切都会中断,所以这并不理想,但可能是我会做的。

是这样吗?关于做我想做的事有什么建议吗?或者我是否像某种尼安德特人一样在每个存储库的基础上指定这一点?

Bla*_*gle 5

可以使用不同的.gitconfig文件来完成此操作。我的主目录如下所示:

~
-> .gitconfig
-> .gitconfig.personal
-> .gitconfig.work
-> /personal
-> /work
Run Code Online (Sandbox Code Playgroud)

内容.gitconfig

# default to work config
[include]
  path = ~/.gitconfig.work

# when working on personal projects
[includeIf "gitdir:**/personal/**/.git"]
  path = ~/.gitconfig.personal

[gpg]
    program = gpg
[commit]
    gpgSign = true
Run Code Online (Sandbox Code Playgroud)

内容.gitconfig.work

[user]
  name = Blair Nangle
  email = blair@work.com
  signingkey = XXXXXXXXXXXXXXXX
Run Code Online (Sandbox Code Playgroud)

内容.gitconfig.personal

[user]
  name = Blair Nangle
  email = blair@personal.com
  signingkey = YYYYYYYYYYYYYYYY
Run Code Online (Sandbox Code Playgroud)

现在,当我处理位于 下的任何 Git 项目时~/personal,将使用我的个人 Git 配置。

您可以通过运行 和 来测试您git config user.email~/work/a-project配置~/personal/another-project