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

标签 git

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

repos/
  workRepos/
     databaseMonitor/
     salesWebapp/
  sudokuSolver/
  someCoolGame/

我知道我可以将 workRepos/ 中每个子仓库的本地 user.email 设置为“rollie@companyname.com”,但我宁愿直接在 workRepos 中设置它/ 所以下面的所有项目都将我的邮箱解析为公司邮箱,我不会不小心提交错误身份的东西。

我对在 workRepos/ 中初始化一个 git 存储库犹豫不决,因为有些工具会向我显示 that 存储库的内容,而不是我正在处理的那个.似乎 git 会有一些东西,允许像 .git.settings 文件,如果在 repo 协议(protocol)之上找到任何人,就会使用它来覆盖全局设置。

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

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

最佳答案

可以使用不同的 .gitconfig 来做到这一点文件。我的主目录如下所示:

~
-> .gitconfig
-> .gitconfig.personal
-> .gitconfig.work
-> /personal
-> /work

.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

.gitconfig.work的内容:

[user]
  name = Blair Nangle
  email = blair@work.com
  signingkey = XXXXXXXXXXXXXXXX

.gitconfig.personal的内容:

[user]
  name = Blair Nangle
  email = blair@personal.com
  signingkey = YYYYYYYYYYYYYYYY

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

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

关于git - 我可以为某个目录下的所有目录设置用户名/电子邮件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70063122/

相关文章:

Git错误: failed to push some refs

java - 为什么我不能将 .jar 添加到 eclipse git repo?

git checkout 结果致命 : unknown

git - git暂存区是如何存储文件的?

git - 为什么我必须执行 git rebase --skip (git svn)

macos - Git rebase 错误 : This application will not run on your computer

windows - 忽略 .gitignore 中的符号链接(symbolic link)

java - IntelliJ Idea with Git : when automatic merge crashed, 我怎样才能继续手动 merge

git - 如何在版本控制系统中组织带有随机数的代码以进行分析?

git - 如何根据Azure DevOps中的分支部署到不同的环境?