最近終于又想起GitHub,想上傳代碼和項目到倉庫里。
由于很早之前有在本地連接過GitHub(但沒怎么用),現在需要重新搞起(操作忘得差不多)。
在看教程實操的過程中遇到了一些小問題,遂記錄一下。
前置操作
- 本地下載安裝 Git:官網鏈接;
- 在 GitHub 上創建新倉庫(New repository)。
添加SSH
首先,右鍵 Git Bash Here 打開一個Git的命令窗口。
- 綁定用戶
由于我以前用過,已經綁定了,可以跳過這部。
用以下命令,可以查看是否有綁定。有user.name
和usere.mail
說明綁定成功。
git config --global --list
綁定命令如下,其中 user.name
與usere.mail
是自己 GitHub 的用戶名與郵箱。
git config --global --unset user.name "user.name"
git config --global --unset user.email "user.email"
- 生成SSH key
輸入以下指令,生成 GitHub 的 SSH key。
其中,"user.email"
是自己 GitHub 的郵箱。
ssh-keygen -t rsa -f ~/.ssh/id_rsa.github -C "user.email"
這是成功的截圖。
在這里我遇到了一個問題。
由于以前生成過一個 SSH key,跳過這步執行后面的步驟一直出錯,所以只好刪除重新生成一個才可以。
在 C盤 > Users > 用戶名 > .ssh
文件夾下,有 id_rsa.pub
文件,說明SSH Key 生成成功。有問題,就把這個文件刪了,再重復上面步驟重新生成一個。
接下來就是打開 id_rsa.pub
文件,把里面的秘鑰內容復制到GitHub的 SSH Key 里。
點擊 GitHub頭像 > 設置(Settings)> SSH and GPG keys
,新建一個 SSH Key(New SSH Key)。
- 檢查密鑰是否配置成功
輸入以下命令進行檢查,如果成功,最后會有 successfully 的提示。
ssh -T git@github.com
在這里又遇到一個問題。
可能是沒復制對(也可能是其他原因,不知道),結果遇到 git@github.com: Permission denied (publickey). 的報錯。
百度了說我是 SSH 公鑰沒有正確配置在 GitHub 上( SSH 密鑰與 GitHub 賬戶沒有正確關聯)。
所以在命令框里用命令重新復制了一次,終于沒問題成功了。
cat ~/.ssh/id_rsa.pub
部署本地倉庫
- 初始化本地倉庫
在本地自己喜歡的位置創建一個文件夾,作為 GitHub 的本地倉庫。然后進入文件夾里,再次右鍵 Git Bash Here 打開一個Git的命令窗口。
使用命令,讓該文件夾成為 Git 可以管理的倉庫。
git init
之后,文件夾里會生成一個 .git
文件夾,用于管理版本庫。
- 關聯GitHub倉庫
命令如下,其中 倉庫地址 的名字,在自己的倉庫 > Code > Local > SSH
底下可以找到。
"origin"
是倉庫的別名,可以就用 origin,也可以自己起一個名字代替。
git remote add origin "倉庫地址"
這個操作結束后,就可以愉快地把本地項目上傳或者下載倉庫里的內容了。
倉庫克隆(下載)
- 輸入命令下載倉庫里的項目,倉庫地址如上截圖。
git clone "倉庫地址"
本地上傳
- 上傳至緩存空間
進入倉庫所在文件夾,如 通過命令cd 文件夾路徑
進入。
使用命令,將目錄下的所有文件都放到緩存空間。
git add .
在提交的過程中,又遇到了問題。
顯示 LF will be replaced by CRLF the next time Git touches it 報錯。
搜了下,好像是不同平臺的回車換行符不兼容所致。我是Window系統,跟Linux系統的換行符不一樣。
輸入以下命令就可以解決問題。
git config --global core.autocrlf true
- 添加備注
如果需要,對提交的內容進行備注,備注的內容會在上傳后顯示在 Last commit message 中。
git commit -m "備注內容"
- 推送上傳
這里需要注意一下,main
是分支的名字,如果有其他分支,并且要上傳到別的分支,就把main改成別的分支的名字。
git push -u origin main
我在這里叕遇到了一個問題!!!
一開始是copy別人的命令 git push -u origin master
,結果遇到了 error: src refspec master does not match any error: failed to push some refs to 報錯。
原因是,我的GitHub上不存在 master 分支,將 master 改成正確的分支名字就好。在這里可以看到分支的名稱。
然后看到一個有趣的小知識。
Github遠程分支默認為:main。
Gitee遠程分支默認為:master。
push成功后,刷新GitHub倉庫的頁面,就可以看到上傳的內容了!
參考教程
- CSDN - GitHub搭建倉庫并上傳本地代碼
- CSDN - 超詳細——入門Github的代碼上傳
- CSDN - 程序員必備技能之上傳代碼至倉庫(Github篇)
- CSDN - Git與GitHub,實現遠程上傳、下拉、更新項目
- 知乎 - github提示Permission denied (publickey),如何才能解決?
- CSDN - Git: ‘LF will be replaced by CRLF the next time Git touches it‘ 問題解決辦法
- 博客園 - git push解決 error src refspec master does not match anyerror