小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

一目了然:git命令三種方式實(shí)現(xiàn)Gitlab和Github同時(shí)登錄

 codingSmart 2021-10-22

code小生,一個(gè)專注 Android 領(lǐng)域的技術(shù)平臺(tái)

公眾號(hào)回復(fù) Android 加入我的安卓技術(shù)群

作者:江子濤Tesla

鏈接:https://www.jianshu.com/p/089861329c1a
聲明:本文來(lái)自江子濤Tesla投稿,轉(zhuǎn)發(fā)等請(qǐng)聯(lián)系原作者授權(quán)

前言介紹:

很多時(shí)候,我們都需要去在電腦上去同時(shí)使用gitlab和github,但是這樣會(huì)很容易造成沖突,看了很多文章去解決這個(gè)問(wèn)題,但是我發(fā)現(xiàn)大家的方式各有不同,導(dǎo)致看博客的人感覺(jué)很困惑,于是我嘗試一步一步引導(dǎo)大家用三種方式去真正的實(shí)現(xiàn)在一臺(tái)PC上去同時(shí)使用gitlab和github

pic1

基本要點(diǎn)

  • 于我而言,提交公司的代碼比較多,所以我配置global為公司(gitlab)使用時(shí)候提交的具體信息,配置local為個(gè)人(github)使用的具體信息

  • global:全局配置(用戶名和郵箱)

  • local:當(dāng)前項(xiàng)目的配置(用戶名和郵箱),如果你沒(méi)有配置,提交代碼時(shí)候個(gè)人信息是global配置的信息。需要注意的是配置local的時(shí)候,需要cd指令打開具體項(xiàng)目文件夾,再去配置local

需要說(shuō)明的是這兩個(gè)配置并沒(méi)有什么大的用處,僅僅只是為了在提交代碼的時(shí)候,標(biāo)明到底是哪位同學(xué)上傳的代碼罷了

  • 類似于如下圖:

    pic2
//查看全局配置(global)
git config --global --list
//設(shè)置global的基本信息,用戶名和郵箱
git config --global user.name AllenJ
git config --global user.name jiang@gamil.com
//查看當(dāng)前項(xiàng)目的配置(local
git config --local --list
//設(shè)置local的基本信息,用戶名和郵箱
git config --global user.name jzt
git config --global user.name jzt@qq.com

三種方式

  • 由于我設(shè)置提交到gitlab是全局global,這個(gè)很簡(jiǎn)單;所以我只演示如何提交到github。

方式一:

  • 通過(guò)Https的方式,不需要生成SSH密鑰

pic3
  • git指令如下圖:

pic4
//配置global
git config --global user.name AllenJ
git config --global user.name jiang@gamil.com

//打開具體需要克隆的文件,克隆項(xiàng)目到該文件夾內(nèi)
cd C/MyBlog
git clone https://github.com/jzt-Tesla/FileRecyclerViewDemo.git

//配置該項(xiàng)目的local
git config --global user.name jzt
git config --global user.name jzt@qq.com

//自己手動(dòng)測(cè)試一下,隨便改一下里面的文件內(nèi)容

//git命令,提交項(xiàng)目到github
cd C/MyBlog/FileRecyclerViewDemo (克隆的具體項(xiàng)目)
git status
git add 具體改變的文件
git commit -m'注釋'
git push

注意:提交的時(shí)候,會(huì)彈出一個(gè)驗(yàn)證,輸入github賬號(hào)和密碼就OK了 ~

pic5

方式二&方式三:

  • 方式二:通過(guò)SSH進(jìn)行驗(yàn)證,但是不配置config文件

  • 方式三:通過(guò)SSH進(jìn)行驗(yàn)證,需要配置config文件

pic6

相同步驟:

  1. 首先分別生成gitlab和github網(wǎng)站的密鑰文件,一共兩對(duì)四個(gè),公鑰和私鑰。

//gitlab密鑰
$ ssh-keygen -t rsa -C "jiang@gmail"
//github密鑰
$ ssh-keygen -t rsa -C "jzt@qq.com" -f ~/.ssh/github_id-rsa
  • -t 密鑰類型,默認(rèn)是 rsa加密

  • -C 注釋文字,比如用戶郵箱

  • -f 密鑰文件位置及文件名

  1. 將生成的公鑰(.pub文件)粘貼到github/gitlab的SSH地址里面

pic7
  1. 這時(shí)候你需要測(cè)試一下是否能夠連的通gitlab/github

ssh -T git@你的地址

//例如如下

ssh -T git@192.168.3.110

ssh -T git@github.com

-當(dāng)測(cè)試的時(shí)候會(huì)發(fā)生圖下所示,測(cè)試生成id_rsa密鑰的地址是正常的,而生成github_id_rsa的會(huì) permission denied(publickey)
意味著無(wú)法連通github

pic8

不同步驟:

方式二:

  • 造成上述情況的原因是,默認(rèn)是使用id_rsa密鑰的,如果要使用新密鑰,需要將新密鑰添加到agent里面去,而且遺憾的是這是臨時(shí)的,下次使用同樣需要再次添加。

    ssh-agent bash
    ssh-add ~/.ssh/github_id_rsa
  • 這個(gè)時(shí)候就可以測(cè)試github了,發(fā)現(xiàn)是完全OK的。

    pic9
  • 剩下的步驟和Https方式一致,無(wú)非是設(shè)置global、local、克隆,推送,提交項(xiàng)目

方式三:

  • 方式二已經(jīng)說(shuō)明了原因了,就是密鑰不一致,那么我們?cè)谶@里采用的方法是搞一個(gè)配置文件config, 其中g(shù)itlab地址,一般都是自己公司目所在的ip地址。網(wǎng)上很多人用gitlab.com,如果你保存項(xiàng)目在gitlab,那你就填寫這個(gè)吧。

//生成config 
ssh touch ~/.ssh/config
  • 直接打開config文件,進(jìn)行如下配置:

Host gitlab

HostName 192.168.3.110

IdentityFile ~/.ssh/id_rsa

Host github

HostName github.com

IdentityFile ~/.ssh/github_id_rsa
  • 注意的是,大家配置完成后進(jìn)行測(cè)試,就不是像方法二 git -T git@具體地址,而是git -T git@Host的值 ,也就是config里面具體的Host,因?yàn)橛信渲梦募onfig,最后會(huì)指向具體的密鑰,這樣就OK了

  • 你可能會(huì)出現(xiàn)下圖的config配置問(wèn)題,我當(dāng)時(shí)被這個(gè)搞了好久,參考很多人說(shuō)的,這個(gè)是空格問(wèn)題 ------>管理git生成的多個(gè)ssh key ,但是我怎么搞都不行,最后用markdown的工具打開,刪除空格和每行之間必須用回車不然也會(huì)出錯(cuò)(開始用了txt文件打開,無(wú)論怎么都搞不好),每行之間是回車,但是你用txt打開卻是空格,所以大家要小心了,實(shí)在不行的,也可以參考我后面的github地址,大家自行下載。

    pic10
  • 最后的成功的結(jié)果圖:

    pic11
  • 剩下的步驟和Https方式一致,無(wú)非是設(shè)置global、local、克隆,推送,提交項(xiàng)目

值得注意的一點(diǎn)是:

  • 當(dāng)我們克隆項(xiàng)目到本地的時(shí)候,也許會(huì)出現(xiàn)第一個(gè)里面的錯(cuò)誤:

    pic12
  • 說(shuō)我們沒(méi)有權(quán)限去克隆,但是明明都已經(jīng)與github服務(wù)器測(cè)試成功了,為什么還是會(huì)出現(xiàn)沒(méi)有權(quán)限的錯(cuò)誤呢?可以觀察到:

  • 第一個(gè)clone的地址是:git clone git@github.com:jzt-Tesla/FileRecyclerViewDemo.git

  • 第二個(gè)clone的地址是:git clone git@github:jzt-Tesla/FileRecyclerViewDemo.git

  • 第一個(gè)地址是直接從github里面復(fù)制過(guò)來(lái)的,錯(cuò)誤在于我們?cè)O(shè)置了config文件里面的github的Host為github,而不是github.com,從而導(dǎo)致了第一種克隆方式無(wú)法找到github密鑰的地址,所以也就沒(méi)有權(quán)限了。修改成Host里面的github,使用第二張克隆就可以成功的將項(xiàng)目clone到本地了。

Others

  • 修改已經(jīng)設(shè)置過(guò)的global配置

$  git config --global --replace-all user.email "輸入你的郵箱" 
$  git config --global --replace-all user.name "輸入你的用戶名"
  • 提交所有修改

// 提交未跟蹤、修改和刪除的文件。
    git add --all

//提交未跟蹤和修改的文件,但不能進(jìn)行文件的刪除。
    git add .
  • 獲取當(dāng)前的clone方式(Http或者Git)

git remote -v
  • SHH驗(yàn)證,成功的話,密鑰的顏色會(huì)有如下的變化:

    pic13

錯(cuò)誤總結(jié):

  • 如果出現(xiàn)錯(cuò)誤 Permission denied (publickey) ,那么證明你進(jìn)行SSH驗(yàn)證的時(shí)候,密鑰是出現(xiàn)了錯(cuò)誤的。

總結(jié)來(lái)說(shuō)

  • 建議大家使用第三種方式,簡(jiǎn)單一丟丟 ~

config文件:

  • Github下載地址:!------》 config文件下載地址
    https://github.com/jzt-Tesla/FileRecyclerViewDemo

pic14

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多