[git]submodule的共用user有关问题
添加submodule时如果git url出现具体的用户名,比如admin用户:
git submodule add ssh://admin@127.0.0.1:29418/myproject.git aaa/bbbb
那么问题来了:
如果submodule的url出现具体的用户名,那么其他电脑上clone时必须要配置该用户的ssh key,也就是说一台电脑上要配置两个ssh key(配置方法参见:http://aigo.iteye.com/blog/2287851),
这样搞比较麻烦。
有一种不正规的解决办法:clone以后,修改本地的.gitmodules文件中的用户名。但这样比较危险,因为.gitmodules时可以提交的,所以,万一其他电脑上不小心把.gitmodules提交了,就会影响其他同事了。
想到一个科学的办法:
修改~/.ssh/config,配置两个host,两个host除了alias别名不一样,其他都一样,相当于模拟两个用户的情况,例如:
Host alias1
HostName 127.0.0.1
Port 29418
User user001
IdentityFile /C/Users/Administrator/.ssh/id_rsa
Host alias2
HostName 127.0.0.1
Port 29418
User user001
IdentityFile /C/Users/Administrator/.ssh/id_rsa
用别名添加submodule
git submodule add alias2:MyRepositoyr.git aaa/bbbb
这样添加后,push到服务器上,其他机器上更新不会出现干扰,其他机器只需要用alias2作为别名、自己的ssh key作为IdentityFile配置config即可。