配置本地Git從Gitlab上拉取項(xiàng)目
安裝git:
https://git-scm.com/downloads
git官網(wǎng)下載安裝包,安裝時(shí)一路next即可
①配置用戶名,郵箱
- 創(chuàng)建一個文件夾,任意位置即可
- 鼠標(biāo)右鍵選擇,git bash here
- 配置提交人姓名、郵箱
git config --global user.name 提交人姓名(自?。?
git config --global user.email 提交人郵箱(自己郵箱)
查看配置結(jié)果:
git config --list
②配置登錄方式
2.1 配置SSH方式
為實(shí)現(xiàn)免登錄效果,使用ssh實(shí)現(xiàn)身份驗(yàn)證,不需要提供用戶名和密碼。依據(jù)公鑰私鑰配對實(shí)現(xiàn)免登錄。
- 生成密鑰:
ssh-keygen -t rsa -C "您的郵箱地址"
回車后會提示您密鑰生成位置–用戶文件下生成.shh文件。打開.ssh文件,即可查看私鑰和公鑰
2. 進(jìn)入密鑰目錄查看密鑰
cd ~/.ssh
- 查看密鑰,并復(fù)制密鑰,將其配置到GitLab上
cat id_rsa.pub
4. 復(fù)制公鑰:復(fù)制公鑰到gitlab上。私鑰保留在開發(fā)者上。實(shí)現(xiàn)連接認(rèn)證
把剛剛 copy 的秘鑰復(fù)制進(jìn)去,取個名字,完成添加~
5. 驗(yàn)證是否成功
輸入 ssh -T git@github.com
如果打印類似如下信息,即完成:
Hi xxxx! You’ve successfully authenticated, but GitHub does not provide shell access.
2.2 配置HTTPS方式
https的方式不用過多的配置,只需要配置本地git的username和email即可
③Gitee與GitHub同時(shí)配置ssh
3.1 Gitee配置ssh訪問
- 設(shè)置用戶名、郵箱為gitee上綁定的郵箱
git config --global user.name "yourname@yourgitee.com"
git config --global user.email "youremail@yourgitee.com"
用戶名、郵箱自取
- 配置生成ssh密鑰
ssh-keygen -t rsa -C "youremail@yourgitee.com"
- 生成密鑰的時(shí)候,會詢問你存放文件名,這個地方自取,只要自己能辨別即可,比如如果我們是配置gitee的,并且用rsa加密,可以取名為
id_rsa_gitee
- 每次生成密鑰都會生成對應(yīng)的id_rsa與id_rsa.pub文件,id_rsa.pub存放公鑰【存放目錄在家目錄下.ssh文件】
- 通過git命令行進(jìn)入存放公私鑰的位置
cd ~/.ssh
- 查看開始生成的公鑰,并配置到gitee上
cat id_rsa_gitee.pub
注意:前面的ssh-rsa
也要帶上
5. 登錄gitee,個人中心 - 安全設(shè)置 - SSH公鑰 - 添加公鑰
6. 將私鑰添加到本地ssh列表
ssh-add ~/.ssh/id_rsa_gitee
如果執(zhí)行ssh-add時(shí)提示"Could not open a connection to your authentication agent",可以現(xiàn)執(zhí)行命令:
ssh-agent bash
然后再運(yùn)行ssh-add命令。
可以通過 ssh-add -l 來確私鑰列表
ssh-add -l
可以通過 ssh-add -D 來清空私鑰列表
ssh-add -D
注意如果我們是要配置多個ssh,一定要將多個私鑰添加進(jìn)去
7. 創(chuàng)建配置文件config(注意:config無后綴名)
touch config
vim config
通過i
然后復(fù)制如下內(nèi)容,然后:wq
保存并退出【如果對vim不熟悉的同學(xué),也可以直接通過windows圖形化操作】
config文件(下面的配置按需修改即可):
# gitlab
Host gitlab.com
HostName gitlab.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_gitlab
# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_gitee
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github
- 測試是否配置成功
ssh -T git@gitee.com
- 如果我們在測試過程中詢問我們是否建立連接,直接輸入
yes
其目的主要是在.ssh目錄:C:\Users\夏末\.ssh
生成對應(yīng)的兩個文件
如果還有其他錯誤的話,可以通過
ssh -Tvvv git@gitee.com
以debug方式來顯示執(zhí)行過程,然后排查錯誤
3.2 配置github
配置都大同小異,此處我就只給命令了
- 用戶名、郵箱
git config --global user.name "yourname@yourgithub.com"
git config --global user.email "youremail@yourgithub.com"
- 進(jìn)入.ssh目錄,生成密鑰
cd ~/.ssh
ssh-keygen -t rsa -C "youremail@yourgithub.com"
- 配置公鑰到github
cat id_rsa_github.pub
4. 添加私鑰到本地
ssh-add ~/.ssh/id_rsa_github
- 修改config配置文件
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github
- 測試
ssh -T git@github.com
Gitlab配置同理:
gitlab配置ssh
- 設(shè)置好本地username與email
git config --global user.name 提交人姓名(自?。?git config --global user.email 提交人郵箱(自己郵箱)
設(shè)置好之后查看結(jié)果:
2. 進(jìn)入ssh文件夾,生成ssh密鑰
cd ~/.ssh
ssh-keygen -t rsa -C "你gitlab上的郵箱地址"
gitlab上的Edit Profile中查看:
在生成過程中會提示我們文件名稱
Enter file in which to save the key
,需要記住,文件名稱不能和Gitee的重復(fù)
讓我們輸入密碼Enter passphrase (empty for no passphrase):
,直接回車就行(下面讓我們繼續(xù)輸入,直接繼續(xù)回車)
- 進(jìn)入ssh私鑰地址,查看對應(yīng)生成好的私鑰
進(jìn)入ssh私鑰存放地址
cd ~/.ssh
后面同上,不再贅述。
注意:
需要根據(jù)公司的gitlab訪問前綴來配置config
例如:
公司項(xiàng)目的gitlab項(xiàng)目的sms地址:
gitlab@gitlab.ali.com:service/test-sms.git
那么我們需要在config中配置成如下:
# gitlab
Host gitlab.ali.com
HostName gitlab.ali.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_gitlab
對應(yīng)的,我們測試也需要使用如下命令:
ssh -T gitlab@gitlab.ali.com
④git刪除本地分支,重新從遠(yuǎn)程新建分支
一.刪除本地分支
我要刪除本地分支dev
1.首先切換到本地一個其他的分支,這里我切換到本地master
git checkout master
2.刪除本地分支dev
git branch -D dev
二.重新拉取遠(yuǎn)程分支dev到本地
1.還是在master分支下進(jìn)行操作,拉取遠(yuǎn)程分支dev到本地
git fetch origin dev
2.還是在master分支下進(jìn)行操作,在本地新建dev分支
git checkout -b dev origin/dev
3.切換到本地dev分支,把dev所有內(nèi)容拉取到本地
git pull origin dev
拓展:
1. git用戶名、郵箱的理解
首先,遠(yuǎn)程倉庫一般支持兩種協(xié)議:SSH和HTTPS,SSH協(xié)議只認(rèn)機(jī)器,HTTPS協(xié)議只認(rèn)賬號;也即為:如果使用SSH操作遠(yuǎn)程倉庫的話,我們需要使用公鑰和私鑰對來做權(quán)限的認(rèn)證,如果使用HTTPS操作遠(yuǎn)程倉庫,則需要使用賬號密碼來做權(quán)限的認(rèn)證。無論是公鑰私鑰對,還是賬號密碼,都只做權(quán)限的認(rèn)證;但是遠(yuǎn)程倉庫里需要記錄這些提交記錄是由誰來完成的;所以我們需要給本地的git設(shè)置用戶名和郵箱,用于從本地倉庫向遠(yuǎn)程倉庫提交記錄時(shí),在遠(yuǎn)程倉庫記錄下這些操作是由誰來完成的。
目前有新的協(xié)議正在開發(fā),暫時(shí)不做討論
Q/A:
1、為什么要配置用戶名和郵箱?
git是分布式版本管理系統(tǒng),每個機(jī)器需要自報(bào)家門(username、email),這樣
遠(yuǎn)程倉庫才知道哪次提交是由誰完成的。
但是我們git配置的用戶名與郵箱都不會進(jìn)行驗(yàn)證,但是如果真的有人冒充的也是有辦法可查的。
2、配置的用戶名和郵箱對push代碼到遠(yuǎn)程倉庫有什么影響?
僅僅會出現(xiàn)在commits里,用來標(biāo)識是誰提交了
首先,配置的用戶名和郵箱對push代碼到遠(yuǎn)程倉庫時(shí)的身份驗(yàn)證沒有作用,即不用他們進(jìn)行身份驗(yàn)證;他們僅僅會出現(xiàn)在遠(yuǎn)程倉庫的commits里。
其次,按正常操作來說,你應(yīng)該配置你的真實(shí)用戶名和郵箱,這樣一來在遠(yuǎn)程倉庫的commits里可以看到哪個操作是你所為。
最后,這個用戶名和郵箱是可以隨便配置的(不提倡),如果你配置的郵箱是github里真實(shí)存在的郵箱,則commits里顯示的是這個郵箱對應(yīng)的賬號;如果配置的郵箱是一個在github里不存在的郵箱,則commits里顯示的是你配置的用戶名。
2.將本地代碼與遠(yuǎn)程空倉庫綁定
有時(shí)候我們在本地寫了代碼,想直接推送到遠(yuǎn)程,直接與遠(yuǎn)程某個倉庫綁定
方法一:
通過命令行操作
①直接通過idea創(chuàng)建倉庫
- 選擇idea上的git選項(xiàng)
- 選擇create 遠(yuǎn)程倉庫
②遠(yuǎn)程已經(jīng)創(chuàng)建好了對應(yīng)的空倉庫
本地設(shè)置git的origin即可
# 查看當(dāng)前遠(yuǎn)程倉庫地址
git remote -v
# 如果沒有則直接添加
git remote add origin 遠(yuǎn)程url
# 如果之前有倉庫地址,則修改為新的倉庫地址
git remote set-url origin http://.../xxx.git
方法二:
通過idea可視化操作
①先到遠(yuǎn)程上創(chuàng)建一個空倉庫(以gitee為例)
②在idea上創(chuàng)建一個項(xiàng)目,然后創(chuàng)建本地倉庫
- 創(chuàng)建倉庫
- 編寫代碼,并將項(xiàng)目交由git管理
.git文件的目錄就創(chuàng)建在項(xiàng)目的文件夾下即可,如:mytest
- 設(shè)置git配置
在idea的中終端,執(zhí)行以下命令
③push的時(shí)候指定origin即可文章來源:http://www.zghlxwxcb.cn/news/detail-793271.html
- 將文件commit之后,點(diǎn)擊push,設(shè)置remote的位置
- 選擇一個https或者ssh地址即可
④成功推送
參考文章:
https://blog.csdn.net/ITWANGBOIT/article/details/103618427文章來源地址http://www.zghlxwxcb.cn/news/detail-793271.html
到了這里,關(guān)于配置本地Git從Gitlab上拉取項(xiàng)目的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!