聊下 git 使用前的一些注意事項

PamHoliday 8年前發布 | 24K 次閱讀 Git 版本控制系統

連接方式https、ssh

在使用git的時候,不管你的服務器是開源平臺github還是私服gitlab,你都需要clone倉庫到本地,這個clone的時候就需要你選擇連接方式。這個連接方式決定了你與服務器交互的時候以一個什么協議進行。如果你沒搞清楚這兩種方式,可能你在使用的時候會很困惑,別人在push代碼的時候沒有提示輸入賬號密碼,而你卻有,至少我當初有過這個問題。

可選擇的協議有https、ssh兩種,這從git repository倉庫的地址就能分辨出來。

這是我6年前的開源項目,套打組件。拿這個做例子,紅色范圍內的地址就是ssh的連接地址。你可以通過”Use HTTPS”切換使用https連接地址。

這是兩種方式連接git服務器。在clone的時候地址就決定了你的交互協議。這兩種方式與git服務器交互的區別體現在你每次push代碼的時候。https協議在你每次push的時候都要求你輸入git賬號密碼,這種方式一般多用于那些你很少push代碼的場景。ssh是用于那些工程開發,你需要頻繁push代碼的場景。

https的賬號就是你的git服務器給你分配的,每次push的時候會有一個文本框提示你輸入。

ssh的使用需要你的倉庫管理員為你設置一個公鑰,這樣你每次push代碼的時候git服務器才知道你是誰。這是采用RSA(公鑰加密算法)也稱非對稱加密算法,RSA產生一對密鑰(公鑰和私鑰),你只需要將你的公鑰提交到git服務器上即可。當你每次push代碼的時候就會使用這對密鑰來加解密且驗證身份。

你可能會問,為什么我不是把私鑰設置到服務器中而是公鑰,如果你真的這么想了,也不奇怪。但是你再進一步想,RSA的算法執行順序就知道了。加密和解密的邏輯是不同的,你提供反了密鑰是執行不了的。

git客戶端生成ssh密鑰對網上有很多文章,這里就不重復了,主要使用ssh-keygen命令。生成好了之后在你的.ssh目錄下會有一對密鑰文件。

復制.pub文本文件中的公鑰,到你的github服務器上設置,在settings/profile下。

添加一個新的sshkey。每一個sshkey的使用都有時間記錄。如果沒有被使用過,ssh的綠色鑰匙是灰色的。這樣你就完成了git連接遠程倉庫,且可以隨時push代碼了。開始你的git之旅吧。

git user.name、user.email、commit log 中的賬號泄露問題

在使用git進行一系列開發之前,你需要設置下當前git客戶端所代表用戶是誰。這樣你在commit代碼的時候,commitlog中會顯示Author是誰,郵箱是誰。

Author: plen-wang <wangqingpei557@163.com>

那么怎么設置用戶名、郵箱尼。你可能使用git config global user.name、git config global user.email來設置全局的賬號和郵箱。

這么做沒錯,但是這么做有一個問題,就是當你切換不同的git repository的時候你的commitlog就有問題了。因為你設置的是全局用戶名和郵箱,想想看如果你在公司使用的是gitlab,然后的你的用戶名和郵箱是公司內部的,突然你切換到外部的github的倉庫上,進行代碼開發和commit,想想看你的commitlog里會出現什么情況。

在git客戶端里有兩種用戶名和郵箱,一個是全局,也是默認的。一個是倉庫級別的。所以當你使用global作為你平時的默認設置時沒關系。但是一旦clone一個新的倉庫的時候記得設置當前倉庫級別的用戶名、郵箱。

查看全局用戶名、郵箱,git config --global user.name,git config --global user.email

查看當前倉庫的用戶名、郵箱,git config user.name,git config user.email

設置全局用戶名、郵箱,git config --global user.name “plen-wang”,git config –global user.email “plen-wang@163.com”

設置當前倉庫的用戶名、郵箱,git config user.name “plen-wang-xxx”,git config user.email “plen-wang-xxx@163.com”

你可以通過git config --list 來查看所有的配置

這里面會出現兩組user.name、user.email 的設置。最上面的北色框里的都是全局配置,下面的白色框里的是當前倉庫的配置。你可以通過查看remote.origin.url來識別。

 

來自:http://www.cnblogs.com/wangiqngpei557/p/6080100.html

 

 本文由用戶 PamHoliday 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!