[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即可。

猜你喜欢

转载自aigo.iteye.com/blog/2287932