專欄的上一篇,是關(guān)于git全家桶的說明,下面我們就要專門介紹怎么用vscode和git將代碼上傳至github。
?前言
?為什么要使用或者上傳至github呢?github有什么好處呢?
當(dāng)然有好處啊。我們?cè)谧鲰?xiàng)目的時(shí)候肯定不是改一次代碼就把項(xiàng)目做好了,肯定要經(jīng)過好多個(gè)版本的迭代完成,而且在修改代碼的時(shí)候還不一定結(jié)果比上一次好,往往需要恢復(fù)至上一個(gè)版本。有同學(xué)說了,我直接一個(gè)版本一個(gè)版本CV。emmm....很聰明啊。
當(dāng)你上傳至github之后這個(gè)就迎刃而解啦。便于管理各個(gè)版本的代碼,如果這個(gè)版本運(yùn)行報(bào)錯(cuò)或者結(jié)果不好,就可以稍稍動(dòng)動(dòng)手指就能一鍵恢復(fù)啦。很方便,如果項(xiàng)目不宜“拋頭露面”,還可以建立私人倉庫哦。
?步驟如下:
1.建立ssh連接。
?先看看自己電腦上有沒有這個(gè)文件。如果有的可以跳過這一步驟。沒有的看這里
ssh-keygen -t rsa -C "youremail@xxx.com" #myname@xxx.com 為 GitHub關(guān)聯(lián)的郵箱
# 三次回車即可生成 ssh key(第一次詢問安裝路徑,第二次設(shè)置密碼,第三次確認(rèn)密碼,都保持默認(rèn)即可,直接回車確認(rèn))
通過這個(gè)命令可以生成密鑰。id_rsa就是私鑰,id_rsa.pub是公鑰。我們接下來需要公鑰。然后在github的ssh這個(gè)選項(xiàng)中選擇ssh這個(gè)選項(xiàng)。
?然后點(diǎn)擊new ssh key,用記事本打開公鑰復(fù)制進(jìn)去就好了。如果這要是你的電腦,當(dāng)然就可以了。但是如果是服務(wù)器的話,切記還要添加服務(wù)器的公鑰,畢竟是服務(wù)器的代碼上傳至github的,不和他配對(duì),就會(huì)出permission denied。別問,問就是被傷過()
?
?2.下載git
一路next就行。暢通無阻啦
?3.vscode 登錄
需要在vscode里面登錄github賬戶。像這樣
?這個(gè)是登錄命令。
git config --global user.name "myname" # myname 為 GitHub 用戶名
git config --global user.email "myname@xxx.com" #myname@xxx.com 為 GitHub關(guān)聯(lián)的郵箱
4.上傳
先建一個(gè)倉庫,輸入倉庫名字,點(diǎn)擊create a new repository。公共私有都可以,依你而建。
?下面這個(gè)就很重要了。最上面是兩種形式,一種是https形式提交代碼一種是ssh,都是一樣的。
git init
git add .(提交全部文件,如果需要提交特定文件夾或者文加,需要加名字)
git commit -m "提交代碼時(shí)的注釋"
git push -u origin main #提交到github
5.注意事項(xiàng)
一個(gè)項(xiàng)目應(yīng)該是很完善的,包括數(shù)據(jù)集還有一些log,都是不重要。我們不必上傳,上傳的應(yīng)該只是代碼改動(dòng)的文件,我們需要知道他每一版代碼改動(dòng)了哪些地方,防止以后忘記(肯定是會(huì)忘記的)如果你想要上傳那些大文件,你可能要等上九九八十一天。我是傳了2566個(gè)文件,等的花都謝了。
重頭戲來了!可以使用gitignore,自動(dòng)忽略那些文件或者文件夾。
在vscode里面不能建.gitignore文件,直接在終端(快捷鍵:ctrl+~)touch一個(gè)。
touch .gitignore
然后在里面編輯有什么不需要上傳至github的。總體如下:
*.py #后綴為py的文件,忽略
dataset/* #忽略dataset目錄里面的文件
!dataset/a.txt #不能忽略datasrt目錄的這一個(gè)文件
最后謹(jǐn)慎選擇下面這個(gè)命令,這個(gè)命令會(huì)直接把你的文件刪了,需要返回上一次提交版本,才能找回。
git clean -fdX #清理工作目錄
git log # 查看提交信息
(yolov5) (base) 目錄$ git log
commit d9c9c6ef6ce90a2757fb5988489dbf3afab7ebf7 (HEAD -> master, origin/master)
# commit后面這個(gè)叫commit_sha碼
git reset --hard HEAD^ # 回退到上一個(gè)版本
git reset --hard HEAD~3 #回退到前三次之前
git reset --hard commit_sha #回退到指定版本
5.常見命令(參考)
5.1 取消上一次commit
注:不光以下列舉的三個(gè),還有其他,能記住這三個(gè)已經(jīng)很不錯(cuò)了。其他的即學(xué)即用就可以了
#取消上一次提交
git reset HEAD~1
#將head指針移到上一個(gè)提交,并清除最后一次提交內(nèi)容
git reset HEAD^
#撤回多次
git reset HEAD~n
5.2取消上一次push
#強(qiáng)制覆蓋遠(yuǎn)程倉庫上已經(jīng)存在的commit,branch_name表示撤銷分支名稱
git push --force origin <branch_name>
# 如果本地倉庫沒有回到commit的上一個(gè)狀態(tài),需要reflog以下,找到上一個(gè)commit_sha碼
git reflog
# 然后用這個(gè)命令回到該commit的狀態(tài)
git reset --hard <commit_SHA-1>
#然后使用之前的推送命令進(jìn)行推送,覆蓋遠(yuǎn)程倉庫的提交歷史記錄
git push --force origin <branch_name>
提醒:使用git push --force
命令可能會(huì)導(dǎo)致遠(yuǎn)程倉庫、其他成員的倉庫和歷史版本產(chǎn)生不可逆的影響,因此操作時(shí)需要謹(jǐn)慎。一般情況下,在工作流中使用git revert
命令回滾某個(gè)commit,以保證版本控制的完整性和可維護(hù)性。文章來源:http://www.zghlxwxcb.cn/news/detail-772905.html
5.3拓展
--mixed #不刪除工作空間的改動(dòng)代碼,撤銷commit,并撤銷git add .操作
git reset --mixed HEAD^ 效果等同 git reset HEAD^
--soft #不刪除工作空間的代碼改動(dòng),撤銷commit,不撤銷git add .
--hard #刪除工作空間代碼改動(dòng),撤銷commit和add .
--amend #修改注釋,進(jìn)入vim編譯器,改完:wq即可
歡迎點(diǎn)贊,關(guān)注哦文章來源地址http://www.zghlxwxcb.cn/news/detail-772905.html
到了這里,關(guān)于vscode 遠(yuǎn)程服務(wù)器 上傳至 github的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!