1.SSH(Secure Shell)是一種安全協議,在你的電腦與GitLab服務器進行通信時,我們使用SSH密鑰(SSH Keys)認證的方式來保證通信安全。
2.創建 SSH密鑰,並將密鑰中的公鑰添加到GitLab,以便我們通過SSH協議來訪問Git倉庫。
SSH 密鑰的創建需要在終端(命令行)環境下進行,我們首先進入命令行環境。通常在OS X和Linux平台下我們使用終端工具(Terminal),在Windows平台中,可以使用Git Bash工具,git客戶端安裝目錄下git-bash.exe文件
A:進入SSH目錄:cd ~/.ssh
(1)如果還沒有 ~/.ssh 目錄,可以手工創建一個(mkdir ~/.ssh),之后再通過cd ~/.ssh進入SSH目錄
(2)可以通過ls -l命令查看SSH目錄下的文件,來確認你是否已經生成過SSH密鑰;如果SSH目錄為空,我們開始第二步B,生成 SSH 密鑰;如果存在id_rsa.pub這個文件,說明你之前生成過SSH密鑰,如何添加多個sshkey也不難,一般很少用,這里不介紹了
B:生成SSH密鑰
我們通過下面的命令生成密鑰,請將命令中的YOUR_EMAIL@YOUREMAIL.COM替換為你注冊gitlab時用的Email地址
ssh-keygen -t rsa -C "YOUR_EMAIL@YOUREMAIL.COM"
在SSH生成過程中會出現以下信息,按屏幕的提示操作即可:
Note:Enter passphrase (empty for no passphrase) :時,可以直接按兩次回車鍵輸入一個空的 passphrase;也可以選擇輸入一個 passphrase 口令,如果此時你輸入了一個passphrase,請牢記,之后每次提交時都需要輸入這個口令來確認。
實踐過程中建議不要密碼。
3.獲取SSH公鑰信息:
SSH密鑰生成結束后,根據提示信息找到SSH目錄,會看到私鑰id_rsa和公鑰id_rsa.pub這兩個文件,不要把私鑰文件id_rsa的信息透露給任何人。我們可以通過cat命令或文本編輯器來查看id_rsa.pub公鑰信息。
(1)通過編輯器。使用你熟悉的文本編輯器,比如 記事本、Sublime Text等軟件打開id_rsa.pub,復制里面的所有內容以備下一步使用。
(2)通過cat命令。在命令行中敲入cat id_rsa.pub,回車執行后命令行界面中會顯示id_rsa.pub文件里的內容,復制后在下一步使用。
(3)通過直接使用命令將id_rsa.pub文件里的內容復制到剪切板中
4.添加SSH公鑰到gitlab:
1.打開gitlab的Profile配置頁面,選擇SSH Keys.
2.添加SSH公鑰。填寫Title和Key,其中Title是Key的描述信息,Key是上面復制的SSH公鑰的內容,直接粘貼到輸入框中保存即可。
5.導入項目:
1.設置下git的用戶名和郵箱
在提交代碼前,還需要設置下git的用戶名和郵箱(最好用英文,不要出現中文),這樣提交記錄才會在gitlab上顯示帶有你名字的記錄。
git config --global user.email "your_email"
2.導新項目到gitlab上
如果項目存在,需要導入到gitlab,可以通過命令行直接將項目導入上去。
cd "本地存在項目的路徑" git init git remote add origin git@gitlab.com:USERNAME/PROJECTNAME.git git add . git commit -m 'first git demo' git push -u origin master
3.導入項目到本地
git clone"你的項目地址"
4. 代碼回滾
如果我們提交了(git commit)代碼,並且已經推送(git push)到了遠程分支,突然發現版本不對,我們想要撤回來,該怎么做?
三種方式:
a. git revert commit號;通過git revert來進行覆蓋,也就是找到需要撤回的版本對應的版本號,通過git revert 加上提交的ID來進行線上覆蓋。
b. git reset --soft commit號 ;通過git reset --soft進行重置,這個方式也是我個人比較喜歡的方式,當你提交了4個文件到master以后,想要撤回來,這種方式會把提交的代碼全部保留再本地,同時你執行git status,你會發現這些代碼都變成了等待提交的狀態,當你修改完以后,在通過git push origin master --force,切記一定要通過--force來強推,因為git reset 不會撤回線上的代碼,只是撤回你本地倉庫的代碼,那么你要提交就會沖突,必須強推才能提交上去。
c. git reset --hard commit號;這種方式慎用,這種方式和--soft類似,但是唯一的區別就是執行以后,本地倉庫代碼都會自動刪除,當你不想要這次提交的代碼的時候可以采用這種方式,最后也是通過git push origin master --force來強推。
近期剛上線一門基於微信小程序、公眾號和小程序雲開發的微信授權、分享和支付的專項課程,如果你對支付感興趣可以考慮入手:
https://coding.imooc.com/class/343.html
React全家桶開發通用的后台管理系統:
https://coding.imooc.com/class/236.html
Vue2.0+Vue-Router+Vuex+Node+Mongo開發全棧商城課程
https://coding.imooc.com/class/113.html
慕課講師:河畔一角
講師地址:http://www.imooc.com/u/1343480