git多仓库多账号配置与androidstudio提交github问题

填坑背景:公司有内网连接 gitlab项目库,但是有时闲的时候想在公司研究一个技术,写完一半有可能就回家了。周末想在家弄弄就按原始人的套路u盘拷贝,自己感觉太low了,会被笑话。这时就想到了github多仓库多账号支持的问题。就这么一鼓捣,百度谷歌一阵折腾,开始了填坑一下午的苦逼经历。以下:


git多仓库多账号配置与androidstudio提交github问题_第1张图片

1.生成针对github密钥
做这个的前提是:大家在这之前已经配置甚至全局(global)配置过公司的gitlab或者其他git仓库了,再打算弄一个自己的库玩玩。所以对git都能基础的用用,我也是只会基础的用用。公司电脑win的,so mac的童鞋们自己鼓捣好本地路径和系统区别的命令啥的O(∩_∩)O~

  • A.生成自己用的github的ssh keys,git终端输入:
    ssh-keygen -t rsa -C "自己私用的Git账号邮箱"

  • B.自定义密钥名称,方便仓库识别。执行完上面的命令会提示如下:
    Enter file in which to save the key (****一个系统默认的路径***):这里输入你新建的密钥名称

我自定义的叫:github_rsa。如果不输入文件名,默认会生成 id_rsa.pub(公钥)、id_rsa(私钥)。我之前图省事,公司的git配置就没自定义,一会能在我文件目录里看到这俩默认密钥。
生成密钥图示如下:


git多仓库多账号配置与androidstudio提交github问题_第2张图片

输入自定义密钥文件名后,其他要求输入密码啥的提示就不用管啦,直接空的一路回车就行。如果想要密码的也可以自己弄,不过设置了密码以后有啥坑就不知道了。最后会在之前命令行提示的路径下.ssh里面,找到了我们新生成的密钥文件啦。我的文件目录是下面这样的:


git多仓库多账号配置与androidstudio提交github问题_第3张图片

github打头的就是我刚刚生成的俩个东西了。另两个id打头的是我公司git用的。 config配置一会说到,很重要。另一个konw_hosts貌似是自动生成的,作用暂时不知道,反正不会动它了

  • C.ssh agent默认只读取id_rsa,为了让SSH识别新的自定义私钥,需将其添加到SSH agent中.这一步很重要,不设置就没法用。git终端命令如下:
    ssh-add github_rsa
    如果出现Could not open a connection to your authentication agent的错误,就试着先用以下命令:
    ssh-agent bash
    然后再:ssh-add github_rsa搞定

  • D.打开github_rsa.pub文件,建议用Notepad++打开,记事本空格啥的比较恶心。复制里面内容。登陆Github 点击 网页右上侧的 Account Setting 按钮 - 选择 ssh-keys 点击Add SSH Key ,粘贴进去就行。

  • E.重要的来了,配置文件config
    git终端进入.ssh 目录下新建一个config文件:
    touch config
    新建后,notepad++打开,添加如下内容(注意,其中的密钥文件名各位别太懒,用自己的):

# gitlab(公司用的id_rsa)
Host gitlab.com
    HostName gitlab.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa
# github(配置给github用的)
Host github.com
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/github_rsa
  • F.给github自己的工程配置下用户名、邮箱
    这里又遇到一个坑,之前配置公司git环境时,我用了全局配置用户名跟邮箱
$ git config --global user.name "xxxxx"
$ git config --global user.email "[email protected]"
$ git config --list (这个很有用,可以去每个git项目目录试一下,能看到这个项目的账户配置,免得搞乱呀)

之前配了全局的,所以新建的项目想分享到github就坑比了,注定不能用公司的邮箱那个配置啊。咋办呢,就是git终端去到我们测试项目的根目录配置一个这项目的账户:

$ git config user.name "gihbub的用户名,随便取"
$ git config user.email "github登录的邮箱"
$ git config --list(查看下,是否跟全局的不一样了,不一样了就对了,你成功了!)

这里有个不确定的问题 , 网上查了很多资料说,应该把之前全局的配置删掉,每个项目都单独配账户设置,说全局的配置会影响其他的。我这里测试的是没有这个情况的,因为git会首先去项目根目录去找git配置,找不到了才会去读全局的。如果连全局配置都木有就挂逼了。我这里的全局环境就是公司的git账户配置,私人项目就在项目根目录里照上面那样配置就行

以上就是配置的全部内容了。现在童鞋们就可以把androidstudio的新项目share到github上管理了,这样回家想看看了就不要跟原始人一样的u盘拷贝了。至于还有不清楚怎么从androidstudio分享到github,就去拜读这位大神的博客吧。百度还是给力的,瞧不起百度的就有点装逼过度了。
androidstudio工程share到github大神教程,点我点我!



这里为什么隔断呢,还加粗呢。因为后面我share成功了,确实在github提交了这个测试项目。但是,发现只有目录,工程内容木有提交上去。提示下面这样的信息:Failed with error:fatal:unable to access. xxx一堆文件信息 error setting certifacate verify locations:

我当时是懵逼的,心情又回到了上面苦逼状态:


git多仓库多账号配置与androidstudio提交github问题_第4张图片

这时没办法啦,百度虽然牛,但是节操欠费啊。求万能的谷歌大神吧。找到一堆stackoverflow的网页。不管英语是何其的烂吧,反正内心凌乱的找到了我想要的东西,其他英文分析是看不懂。但是评论下发都是一堆thanks还是看得很懂的,这必须妥妥的解决了。就是一个git终端命令,如下:
git config --global http.sslverify "false"

看着意思貌似是不验证这个什么http的sll认证?原理是真不清楚,反正git终端撸了一下,完美提交更新,公司的库,个人的库两不相干。OVER!。有大神知道啥原因的,可以留言指导下我们小学生,在此感谢大神了。


git多仓库多账号配置与androidstudio提交github问题_第5张图片

你可能感兴趣的:(git多仓库多账号配置与androidstudio提交github问题)