在使用git的時候,不管你的伺服器是開源平台github還是私服gitlab,你都需要clone倉庫到本地,這個clone的時候就需要你選擇連線方式。這個連線方式決定了你與伺服器互動的時候以乙個什麼協議進行。如果你沒搞清楚這兩種方式,可能你在使用的時候會很困惑,別人在push**的時候沒有提示輸入賬號密碼,而你卻有,至少我當初有過這個問題。
可選擇的協議有https、ssh兩種,這從git repository倉庫的位址就能分辨出來。
這是我2年前的開源專案,套打元件。拿這個做例子,紅色範圍內的位址就是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進行一系列開發之前,你需要設定下當前git客戶端所代表使用者是誰。這樣你在commit**的時候,commitlog中會顯示author是誰,郵箱是誰。
author: plen-wang
那麼怎麼設定使用者名稱、郵箱尼。你可能使用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 「[email protected]」
設定當前倉庫的使用者名稱、郵箱,git config user.name 「plen-wang-***」,git config user.email 「plen-wang-***@163.com」
你可以通過git config --list 來檢視所有的配置
這裡面會出現兩組user.name、user.email 的設定。最上面的北色框裡的都是全域性配置,下面的白色框裡的是當前倉庫的配置。你可以通過檢視remote.origin.url來識別。
1 4 Git分支管理
1.分支 2.建立分支 git checkout b dev 建立並切換到dev分支 git branch dev git checkout dev git branch 檢視當前分支 3.在分支上開發 git add readme.txt git commit 切換分支 git checkout ...
14 git配置忽略檔案的3種情形
git配置忽略檔案的3種情形 1 從未提交過的檔案可以使用.gitignore 也就是新增之後從來沒有提交 commit 過的檔案,可以使用.gitignore忽略該檔案 該檔案只能作用於未跟蹤的檔案 untracked files 也就是那些從來沒有被 git 記錄過的檔案 比如,忽略log 下的...
1 4 git和github 4 開源專案協作
1.直接通過搜尋進入到主頁 2.開乙個新的分支 轉殖乙個版本放到我的使用者下 3.開啟github本地客戶端,確保git和github是我本人的 git clone 轉殖到本地 4.貢獻者和作者通訊 pull request 給作者發請求 new pull request create pull r...