git多账户跨平台管理

git 的配置分system, global, local三个等级,global在用户目录 ~/.gitconfig里面,可以配置当前用户的所有仓库,local在某个仓库的repository/.git/config里面,只对当前repository有效

Windows系统里面,每行结尾用回车(CR)+换行(LF),Linux系统中每行结尾用换行(LF),这样会出现本来代码没有动,但是git显示有改动的情况。我们上传到版本控制系统里面的换行符一般都都是统一用LF的。因此电脑端这样配置:

git config --global core.autocrlf true
# 此命令可以在提交时把结束符CRLF转换成LF,而在拉取代码时把LF转换成CRLF。建议windows机器这样配置

git config --global core.autocrlf input
# 此命令只会在提交文件时对CRLF进行LF转换,拉取时不转换。建议linux机器这样配置

git config --global core.autocrlf false
# 此命令在提交和拉取时均不转换

配置好后,可以用以下命令来检查global配置

git config --global --list

另外,我们通常一台电脑只有一个用户,这个时候你可以设置global 用户和邮箱。然后有时候我们在一台服务器上会有多人使用,这个时候如何设置git呢。

清除global

git config --global --unset user.name
git config --global --unset user.email
ssh-keygen -t rsa -C "user1@gmail.com" -f '~/.ssh/id_rsa_1'
# 设置用户1的ssh-key

ssh-keygen -t rsa -C "user2@gmail.com" -f '~/.ssh/id_rsa_2'
# 设置用户2的ssh-key

这个时候你在~/.ssh下面可以发现有两对公钥和私钥。然后在~/ssh下面新建config文件

# user1
Host user1.github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_1

# user2
Host user2.github_pro
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_2

Host是可以随便取的别名,hostname是实际真实的服务器地址。
然后当user1 想要ssh clone 他自己的仓库的时候就不能用默认名称了, 比如

git clone git@github.com:ArnaudRinquin/atom-zentabs.git

这个时候要改为如下命令,git会通过config文件里面的host别名去取对应的ssh key文件

git clone git@user1.github.com:ArnaudRinquin/atom-zentabs.git
#user1.github.com就是我们在config里面配置的host别名

这个时候你查看这个repository的git配置文件,就会发现remote就是user1的host。

cd atom-zentabs 
cd .git
vim config
# 然后你还要在这个仓库里面添加local的用户名和邮箱
git config --local user.name 'user1'
git config --local user.email 'user1@gmail.com'

然后你可以查看这个repository的配置。当然必须在这个repository目录里面才可以,否则会提示找不到配置文件。

git config --local --list
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值