这个配置能四开csol2配置吗(在多个账户下)

3011人阅读
开发工具使用(7)
必须知道如何配置git账户,请参考git官方教程:/articles/generating-ssh-keys
这个教程能教你如何生成ssh-key,以及如何添加ssh-key。
补充一点,如何设置user.name和user.email,命令如下:
1)设置局部的user.name和user.email
git config user.name “xxxxxx”
git config user.email “”
2) 设置全局的user.name和user.email
git config --gloable user.name “xxxxxx”
git config -gloable user.email “”
建一个新的github账户,名字为testaccount,如果你已经有了,跳过此步(注:你之前已经有了一个老的账户了,如果没有,请看“前提”先来一个账户)
如果自己会生成和配置ssh-key,那么要配其他账户首先要在生成一个ssh-key,当然新的ssh-key名称要和之前的有所区别,默认的private key 名称为id_rsa,新的key要换个名称,比如id_rsa2,这样生成一套key的名称分别为id_rsa2和id_rsa2.pub,而默认的文件为id_rsa和id_rsa.pub
在github上建一个新的repository,当然是基于你的第二个账户testaccount的,例如名称为test
git clone下来
然后要在.ssh目录下配置一下config文件(如果没有,创建它),例子如下:
# Default account
IdentityFile ~/.ssh/id_rsa
# New account
IdentityFile ~/.ssh/id_rsa2
此时发现,这个配置看不懂啊,没关系,下边你可以使用命令,在一个test目录下执行git config -l 命令查看配置,如下所示:
core.symlinks=false
core.autocrlf=false
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
pack.packsizelimit=2g
help.format=html
http.sslcainfo=/bin/curl-ca-bundle.crt
sendemail.smtpserver=/bin/msmtp.exe
diff.astextplain.textconv=astextplain
rebase.autosquash=true
mergetool.prompt=false
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.symlinks=false
core.ignorecase=true
core.hidedotfiles=dotGitOnly
remote.origin.url=:testaccount/test.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
user.name= xxxxxx
user.email=
注意这一行remote.origin.url=:testaccount/test.git,这里的 表示config文件里的hostname,其实他并不是hostname而是一个别名,这样解释:
git@别名: testaccount/test.git解析的路径为 :testaccount/test.git而我配的default account的host和hostname刚好一样,如果只有一个账户的时候,它并不表示别名而是路径,此时我们不需要配置config文件,我们设置config文件的目的是因为我们有两套key,分别用在两个repository,而我们需要分别指向这两个key,简单来说,我们是要通过host来找到key,即通过host映射到IdentityFile。
此时打开test目录下.get目录(隐藏目录)的config文件,内容如下:
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
hideDotFiles = dotGitOnly
[remote &origin&]
url = :testaccount/test.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch &master&]
remote = origin
merge = refs/heads/master
name = testaccount
我们只需把 url = :testaccount/test.git改为 url = :testaccount/test.git,即使用了new account的host来配置,映射到了新的IdentityFile新的key,即可保存文件再使用命令git config -l 查看配置如下:
core.symlinks=false
core.autocrlf=false
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
pack.packsizelimit=2g
help.format=html
http.sslcainfo=/bin/curl-ca-bundle.crt
sendemail.smtpserver=/bin/msmtp.exe
diff.astextplain.textconv=astextplain
rebase.autosquash=true
mergetool.prompt=false
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.symlinks=false
core.ignorecase=true
core.hidedotfiles=dotGitOnly
remote.origin.url=:testaccount/test.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
user.name= testaccount
user.email=
大功告成,你可以push代码了
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:124045次
积分:2668
积分:2668
排名:第11372名
原创:124篇
转载:117篇
译文:12篇
(1)(1)(1)(2)(6)(3)(3)(6)(8)(5)(2)(3)(9)(9)(5)(3)(2)(12)(3)(2)(5)(2)(5)(3)(15)(1)(1)(4)(1)(4)(9)(31)(2)(2)(21)(6)(8)(5)(4)(30)(5)这一篇文章是对上一篇文章的拓展,所以需要对上一篇文章有所了解,当然直接往下看也可以,其中也有一些提到一些基础的操作。
本文以配置<账号和git.oschina.net账号来逐步演示在Windows环境下配置Git多账号支持即在同一个电脑上管理多个ssh-key,对git多一分了解。
备注:这篇文章所有执行命令的地方都是在管理员模式下进行,即打开cmd,Git Bash客户端用管理员身份运行程序。
1. 生成对应的私钥公钥(本文中文件地址C:\Users\popfisher目录)
执行命令&ssh-keygen -t rsa -C email&创建github对应的sshkey,命名为id_rsa_github,密码&123456&
ssh-keygen -t rsa -C @qq.com
2. 同样的方式生产git.oschina.net的私钥公钥(邮箱地址可以相同可以不同,本文相同)
执行命令ssh-keygen -t rsa -C email创建github对应的sshkey,命名为id_rsa_oschina,密码&123456&
ssh-keygen -t rsa -C @qq.com
3. 把上面得到的文件拷贝到git默认访问的.ssh目录(win10在用户目录下,本文C:\Users\popfisher.ssh)
除了秘钥文件之外,config文件是后面的步骤中手动生产的,known_hosts文件是后续自动生产的
4. 把github对应的公钥和oschina对应的公钥上传到服务器
&GitHub添加SSH key的方式如下图所示:
git.oschina.net添加SSH key的方式如下图所示:
5. 在.ssh目录创建config文本文件并完成相关配置(最核心的地方)
每个账号单独配置一个Host,每个Host要取一个别名,每个Host主要配置HostName和IdentityFile两个属性即可
Host的名字可以取为自己喜欢的名字,不过这个会影响git相关命令,例如:Host mygithub 这样定义的话,命令如下,即git@后面紧跟的名字改为mygithubgit clone
git@mygithub:PopFisher/AndroidRotateAnim.git
HostName         &&这个是真实的域名地址IdentityFile         &这里是id_rsa的地址PreferredAuthentications& &配置登录时用什么权限认证--可设为publickey,password publickey,keyboard-interactive等User            配置使用用户名
config文件配置如下:
IdentityFile C:\\Users\\popfisher\\.ssh\\id_rsa_github
PreferredAuthentications publickey
User username1
# 配置git.oschina.net
Host git.oschina.net
HostName git.oschina.net
IdentityFile C:\\Users\\popfisher\\.ssh\\id_rsa_oschina
PreferredAuthentications publickey
User username2
&6. 打开Git Bash客户端(管理员身份运行)执行测试命令测试是否配置成功(会自动在.ssh目录生成known_hosts文件把私钥配置进去)
7. 测试成功之后就可以在电脑上同时使用git多多账号同时操作,互不影响了
clone github上的项目AndroidRotateAnim
  打开github上AndroidRotateAnim项目,复制其对应的clone命令入下图所示
&执行clone命令如下:
clone oschina.net上的项目AndroidDevTools
  打开git.oschina.net上AndroidDevTools项目,复制其对应的clone命令入下图所示
&执行clone命令如下:
  在使用git的过程中,一般都只关注单账号的情况吗,工作中的配置也是直接由自己的上级发一个配置文档之类的东西,然后对着搞一遍就行了,可是当自己真正有这个需求的时候,突然发现束手无策。我自己当时也属于这个情况,有一天在家里,突然发现自己需要一台电脑支持多个SSH key的时候才发现自己不知道怎么下手了,于是就下定决心自己动手研究一下。对于技术,还是要亲自动手实践,实践出来的东西才能形成自己的真理,才不那么容易忘记。&
  这篇文章是我基于Win10平台上的实践,由于知识有限,可能还是没有总结得很完整,也可能在其他平台上会遇到一些其他的问题,没有时间去研究了,如果读者有遇到什么问题,欢迎留言讨论,共同学习。
阅读(...) 评论()

参考资料

 

随机推荐