git多用户配置实践
Contents
本文主要记录git多用户配置。
常见的使用场景是公司和github的用户配置不一样:
普通做法是为每个repo单独配置 User config
git config --local user.name "name" |
repo多起来后再这样手动配置就有点麻烦了。考虑到公司和github的repo地址一个是gitlab,一个是github,所以有没有能根据repo地址自动配置git用户信息的方法呢?
git user 自动配置
git 的User信息配置分两种,一种是global
,一种是local
。其中local
配置信息存储在./.git/config
文件中。
可以通过hook
在每次commit之前判断repo地址来修改config,达到自动化的目的。
1、修改 ~/.gitconfig
[init] |
这会使得每个 git 目录在init时都会都会引用这个 templates 中的 配置。
2、新建 ~/.git/templates/hooks/pre_commit
文件,在这个文件中的命令会在每次commit前执行。
3、chmod +x ./pre_commit
然后在下次 commit 时会自动切换 user config 了,如果需要在已经初始化的 git 项目中使用这个 hook,重新运行 git init
即可。
修改已提交的作者信息
有时候用了错误的User config提交了一条commit,怎样只修改User信息呢?
1、找到错误commit的上一个commit
git rebase -i HASH |
如果要修改第一条commit
git rebase -i --root |
2、使用 edit
修改该commit,保存退出后
Stopped at c9441b4... init |
3、用 --amend
修改 author
git commit --amend --author="user <user@email.com>" --no-edit |
4、强推到远程分支
参考
Author: deskid
Link: https://deskid.github.io/2017/09/02/git多用户配置实践/
License: 知识共享署名-非商业性使用 4.0 国际许可协议