設(shè)置ssh
Gitlab添加SSH KEY
什么是SSH ?
SSH 是一種網(wǎng)絡(luò)協(xié)議,具備協(xié)議級別的認(rèn)證及會話管理等功能。另外在架設(shè) SSH 服務(wù)方面,任何人都可以輕易地創(chuàng)建安全等級高的服務(wù)。相比而言 HTTP 協(xié)議則沒有上述的特點。
在WSL(Windows Subsystem for Linux)中,SSH公鑰通常存儲在用戶的~/.ssh目錄下。具體的文件名通常是 id_rsa.pub(對于RSA密鑰)或其他與使用的密鑰算法有關(guān)的名稱。
# 找到SSH公鑰:您可以通過以下命令查找并顯示您的SSH公鑰
cat ~/.ssh/id_rsa.pub
# 如果該命令返回“沒有那個文件或目錄”之類的消息,那么您可能還沒有生成SSH密鑰。
# 生成新的SSH密鑰:如果您沒有SSH密鑰,您可以使用以下命令生成一個新的SSH密鑰:
ssh-keygen -t rsa -b 4096
#一路按enter即可, 這通常會在~/.ssh目錄下生成一個新的SSH密鑰對(id_rsa和id_rsa.pub)。
# 添加到ssh-agent:確保ssh-agent正在運行,并將您的私鑰添加到ssh-agent。您可以用以下命令來實現(xiàn)
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
# 查看SSH公鑰
cat ~/.shh/id_rsa.pub
請注意,以上命令和文件路徑假設(shè)您是在WSL中的Linux環(huán)境里運行這些操作,而不是在Windows環(huán)境里。在WSL中,您通常應(yīng)該使用Linux的文件路徑和命令。
一旦您找到或生成了SSH公鑰,您就可以將其復(fù)制并粘貼到GitLab或其他遠(yuǎn)程Git服務(wù)中以完成身份驗證。請確保您沒有不小心包含多余的空格或換行符,這些都可能導(dǎo)致密鑰無法正常工作。
將SSH公鑰添加到Gitlab
用下圖方式找到SSH Keys的位置
將cat ~/.shh/id_rsa.pub輸出的內(nèi)容復(fù)制,然后粘貼到Key的部分,可以生成如下的SSH Keys
確保SSH密鑰已加載
在本地計算機上運行以下命令,以確保SSH密鑰已經(jīng)被加載到ssh-agent中。
# 確保SSH密鑰已加載
ssh-add -l
# 測試SSH連接
ssh -T git@git.gxar.com
# 如果一切正常,您應(yīng)該會看到一個歡迎消息
# 確保您有權(quán)限訪問此倉庫
#確保您的GitLab賬戶有權(quán)限訪問您試圖推送到的遠(yuǎn)程倉庫。如果您沒有權(quán)限,您將無法進(jìn)行推送
# 檢查遠(yuǎn)程倉庫URL
git remote -v
將WSL上的代碼上傳到gitlab
確保在WSL環(huán)境中安裝了git
如果尚未安裝,您可以使用以下命令進(jìn)行安裝:
sudo apt update
sudo apt install git
下面是上傳代碼到GitLab的具體步驟:
創(chuàng)建GitLab倉庫
- 登錄到GitLab賬戶
- 點擊"New project"創(chuàng)建新的代碼倉庫
- 輸入項目名,可選的描述,然后選擇項目的可見性
- 點擊“Create project”
從WSL上傳代碼
- 初始化本地倉庫
在WSL中,打開你的代碼所在目錄。
cd path/to/your/project
比如我想把我的TEXTurePaper文件夾下的所有文件都上傳
初始化一個新的Git倉庫。
git init
- 添加所有文件到新的Git倉庫
git add .
注意:這會添加當(dāng)前目錄和子目錄中的所有文件。如果你只想添加特定文件或文件夾,可以指定它們(如:git add 或 git add <foldername>/)。
- 提交您的代碼
git commit -m "Initial commit"
4.添加GitLab倉庫為遠(yuǎn)程倉庫
從GitLab項目頁面復(fù)制“Clone with HTTPS”或“Clone with SSH”鏈接。
git remote add origin <Copied-URL>
例如:
# 使用HTTPS
git remote add origin https://gitlab.com/username/project.git
或如果你使用SSH,這里建議使用SSH!!!
# 使用SSH
git remote add origin git@gitlab.com:username/project.git
- 推送代碼到GitLab
# git push -u origin master
git push -u origin main
這將推送代碼到GitLab上名為“main”的分支。
- 驗證和完成
打開GitLab,刷新項目頁面,您應(yīng)該能看到已上傳的代碼。
這樣您就成功地從WSL環(huán)境上傳了代碼到GitLab。
可能遇到的各種錯誤
(base) aaa@ASUS:~/ML/paper/TEXTurePaper$ git commit -m "Initial commit"
*** Please tell me who you are.
Run
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
fatal: empty ident name (for <aaa@ASUS.localdomain>) not allowed
這個錯誤是因為Git需要知道提交是由誰進(jìn)行的,所以它需要您設(shè)置全局或者針對當(dāng)前倉庫的用戶名和郵箱地址。
這里是解決步驟:
選擇1:
設(shè)置全局級別的用戶名和郵箱(不建議?。?!)
如果您希望在所有Git倉庫中使用同一名稱和郵箱,您可以運行以下命令:
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
選擇2:
設(shè)置倉庫級別的用戶名和郵箱
如果您只想針對當(dāng)前的Git倉庫設(shè)置用戶名和郵箱,您可以在同一命令中省略–global選項:
git config user.email "you@example.com"
git config user.name "Your Name"
同樣地,將其中的"you@example.com"和"Your Name"替換成您的實際郵箱地址和姓名。
提交代碼
完成這些設(shè)置后,您就可以再次嘗試提交代碼:
git commit -m "Initial commit"
這次應(yīng)該不會出現(xiàn)之前的錯誤信息了。然后,您可以繼續(xù)之前的步驟,將代碼推送到GitLab。
(base) aaa@ASUS:~/ML/paper/TEXTurePaper$ git remote add origin https://git.gxar.com/demo/TEXTure.git
fatal: remote origin already exists.
這個錯誤表示在當(dāng)前Git倉庫中,已經(jīng)存在名為 origin 的遠(yuǎn)程倉庫。如果你確定要用新的URL替換現(xiàn)有的origin,可以先刪除舊的,然后添加新的。
查看現(xiàn)有的遠(yuǎn)程倉庫
首先,你可以查看所有關(guān)聯(lián)的遠(yuǎn)程倉庫以及它們的URL:
git remote -v
刪除現(xiàn)有的origin
如果你確定要替換,可以先刪除現(xiàn)有的origin:
git remote remove origin
# 或者使用
git remote rm origin
添加新的origin
然后,你就可以使用新的URL添加origin了:
git remote add origin https://git.gxar.com/demo/TEXTure.git
或者,直接更改origin的URL
如果你不想刪除現(xiàn)有的origin,也可以直接更新其URL:
git remote set-url origin https://git.gxar.com/demo/TEXTure.git
這樣,你就成功地更改了遠(yuǎn)程倉庫的URL。之后,你可以繼續(xù)推送代碼到新設(shè)置的origin。
(base) aaa@ASUS:~/ML/paper/TEXTurePaper$ git push -u origin master
error: src refspec master does not match any
error: failed to push some refs to 'https://git.gxar.com/demo/TEXTure.git'
檢查當(dāng)前分支
首先,確保你在你想推送的分支上(通常是master或者main)。你可以使用下面的命令來查看所有的分支:
git branch
(base) aaa@ASUS:~/ML/paper/TEXTurePaper$ git remote add origin git@git.gxar.com:demo/TEXTure.git
fatal: remote origin already exists.
這個錯誤表明一個名為 origin 的遠(yuǎn)程倉庫已經(jīng)存在在您的本地Git配置中。如果您想添加一個新的遠(yuǎn)程倉庫并將其命名為 origin,您有兩個選項:
選項一:刪除舊的遠(yuǎn)程倉庫
a 首先,使用以下命令查看當(dāng)前的遠(yuǎn)程倉庫設(shè)置:
git remote -v
這會列出所有遠(yuǎn)程倉庫以及它們的URL。
b 然后,使用以下命令刪除已有的 origin:
git remote remove origin
c 最后,添加新的 origin:
git remote add origin git@git.gxar.com:demo/TEXTure.git
選項二:使用不同的名字
如果您不想刪除舊的 origin,您可以選擇一個不同的名字為您的新遠(yuǎn)程倉庫。
git remote add new_origin git@git.gxar.com:demo/TEXTure.git
之后,您可以使用這個新的名字(new_origin)來進(jìn)行 push、pull 等操作。
例如:
git push -u new_origin main
選擇一個方案后,按照對應(yīng)的步驟進(jìn)行,應(yīng)該就可以解決您的問題。
(base) aaa@ASUS:~/ML/paper/TEXTurePaper$ git commit -m "Initial commit"
On branch main
nothing to commit, working tree clean
這個消息表示在您嘗試進(jìn)行Git提交(commit)時,Git沒有發(fā)現(xiàn)任何未提交(uncommitted)的改動。換句話說,您的工作目錄是“干凈的”,意味著您沒有進(jìn)行任何改變,或者您已經(jīng)將所有改動添加(staged)并提交(committed)了。
這里有幾種可能的情況:
沒有新文件或改動:如果您剛剛初始化了一個新的Git倉庫,或者沒有做出任何改變,那么Git自然沒有任何內(nèi)容可以提交。
改動已經(jīng)被提交:如果您之前已經(jīng)添加并提交了所有改動,那么工作目錄也會是干凈的。
如何解決
如果您確實有需要提交的新文件或改動,確保首先使用git add <file>命令來添加它們。例如:
git add myfile.txt
或添加所有改動:
git add .
然后嘗試再次提交:
git commit -m "Your commit message"
如果您不確定是否有任何未添加或未提交的改動,您可以使用以下命令查看:
git status
這將顯示所有未添加(unstaged)或未提交(uncommitted)的改動。
如果git status顯示您的工作樹是干凈的,但您確信應(yīng)該有一些改動需要提交,那么您可能在錯誤的目錄或分支中。確保您處于正確的工作目錄并且已經(jīng)切換到了包含您改動的分支。
-
使用SSH URL!!!
我他媽之前一直是使用的HHTPS,我還以為是用的SSH:
git remote add origin https://git.gxar.com/demo/demo-texture.git我使用的是這個,這個應(yīng)該是SSH吧
實際上,上面使用的URL https://git.gxar.com/demo/demo-texture.git 是一個HTTPS URL,而不是SSH URL。
HTTPS和SSH是兩種不同的協(xié)議,用于與遠(yuǎn)程Git倉庫進(jìn)行通信:
HTTPS URL 通??雌饋硐襁@樣: https://<hostname>/<user>/<repository>.git。
SSH URL 通常看起來像這樣: git@<hostname>:<user>/<repository>.git。
如果您想使用SSH,您需要找到SSH形式的Git倉庫URL。這通??梢栽贕itLab倉庫的“Clone”或“Clone Repository”部分找到。
在找到SSH URL后,您可以使用以下命令更改遠(yuǎn)程倉庫的URL:文章來源:http://www.zghlxwxcb.cn/news/detail-672770.html
git remote set-url origin git@git.gxar.com:demo/demo-texture.git
注意:在使用SSH之前,確保您已生成SSH密鑰并添加到GitLab賬戶,還要確保SSH agent運行并已加載了您的SSH密鑰。這些步驟對于SSH身份驗證是必要的。文章來源地址http://www.zghlxwxcb.cn/news/detail-672770.html
到了這里,關(guān)于上傳WSL項目到gitlab的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!