柚子快報(bào)邀請(qǐng)碼778899分享:Git與Github常用方法
柚子快報(bào)邀請(qǐng)碼778899分享:Git與Github常用方法
目錄
1. Github基本使用方法2. Git使用方法3. git、VS code、Github聯(lián)合使用方法4. Git配置Github遠(yuǎn)程倉(cāng)庫(kù)SSH密鑰5. 常見(jiàn)問(wèn)題
1. Github基本使用方法
倉(cāng)庫(kù)(Repository):Github上用來(lái)存放代碼的空間,包含代碼、文檔和其他文件。提交(Commit):Git是一種版本控制系統(tǒng),它通過(guò)不斷提交新的修改內(nèi)容來(lái)記錄代碼的版本,每次提交稱(chēng)為一次“提交”(Commit)。分支(Branch):在Git上,每一個(gè)代碼倉(cāng)庫(kù)都有一個(gè)主分支(master branch),每個(gè)開(kāi)發(fā)者都可以從主分支上創(chuàng)建一個(gè)自己的分支Branch),在自己的分支上進(jìn)行開(kāi)發(fā),完成開(kāi)發(fā)后再將分支合并到主分支上。合并(Merge):將分支上的代碼或修改合并到主分支或其他分支上。請(qǐng)求合并(Pull Request):開(kāi)發(fā)者在自己的分支上開(kāi)發(fā)完代碼后,將修改請(qǐng)求合并到主分支或其他分支上,請(qǐng)求合并的過(guò)程稱(chēng)為“Pull Request”,開(kāi)源社區(qū)的成員可以對(duì)請(qǐng)求進(jìn)行審查和討論。
主要操作:
創(chuàng)建倉(cāng)庫(kù):“New Repository”->“Create Repository”; 克隆倉(cāng)庫(kù):直接點(diǎn)擊“download ZIP”(下載的只是整個(gè)項(xiàng)目文件);或者用git命令" git clone https://github.com/*************.git"(下載的不僅是整個(gè)項(xiàng)目文件,還有倉(cāng)庫(kù)屬性) 上傳文件:點(diǎn)擊addfile即可或者采用git命令(詳情見(jiàn)文章后面) 提交更改(pull request)看到別人倉(cāng)庫(kù)的東西,想提出修改意見(jiàn),可點(diǎn)擊“pull request”,上傳自己修改過(guò)的代碼和描述。 提交疑問(wèn)(Issues):基于查看過(guò)代碼倉(cāng)庫(kù)的前提提交問(wèn)題和提交說(shuō)明,倉(cāng)庫(kù)創(chuàng)建者有權(quán)利關(guān)閉問(wèn)題并和網(wǎng)友評(píng)論問(wèn)題以及添加標(biāo)簽。 README.md文件:這個(gè)項(xiàng)目的整體介紹和使用的方法。 License文件:如果你想把這個(gè)代碼抄到項(xiàng)目中,一定要注意license。如果是MIT這種,就代表你只要保留了原作者的一些版權(quán)信息在源代碼里,基本上就可以無(wú)限制使用,也不用付費(fèi)。如果有一些奇奇怪怪的LICENSE,既不是MIT也不是Apache軟件基金會(huì)的那種。就需要和公司法務(wù)確認(rèn)好,以避免不必要的官司和糾紛。
找開(kāi)源項(xiàng)目的一些途徑:
? https://github.com/trending/
? https://github.com/521xueweihan/HelloGitHub
? https://github.com/ruanyf/weekly
? https://www.zhihu.com/column/mm-fe
查找資源的前后綴技巧:
? 找百科大全 awesome xxx
? 找例子 xxx sample
? 找空項(xiàng)目架子 xxx starter / xxx boilerplate
? 找教程 xxx tutorial
2. Git使用方法
Git是一款分布式源代碼管理工具(版本控制工具) ,可以用來(lái)合作開(kāi)發(fā)項(xiàng)目,不同階段提交代碼的回溯等等,經(jīng)常與Github搭配使用。
常用Git命令:
克隆倉(cāng)庫(kù):git clone 地址 ,例如:
git clone https://github.com/ABC/test.git
初始化倉(cāng)庫(kù):在本地新建一個(gè)文件夾,用git bash打開(kāi),輸入git init,就可以把該文件夾當(dāng)作一個(gè)git倉(cāng)庫(kù)使用。
git init
修改名字和郵箱:第一次使用git的時(shí)候,需要設(shè)置用戶的名字和郵箱。
git config --global user.name "your username"
git config --global user.email "your email"
將修改或新建文件添加到暫存區(qū):
git add 文件名 //單獨(dú)添加某個(gè)文件到暫存區(qū)
git add . //添加所有修改或新建文件到暫存區(qū)
commit將暫存區(qū)的文件提交到本地倉(cāng)庫(kù)中:
git commit -m "提交描述信息"
查看提交的歷史紀(jì)錄:
git log --stat
在工作區(qū)(還沒(méi)有commit)回滾一個(gè)文件到初始狀態(tài):
git checkout filename
如果已經(jīng)commit,想撤回:
git reset HEAD^n //n表示第上n個(gè)commit回滾
git reset HEAD^1 //表示撤銷(xiāo)最后一次提交
以當(dāng)前分支為基礎(chǔ)新建分支:
git checkout -b branchname
列舉所有分支:
git branch
切換到某個(gè)分支:
git checkout branchname
刪除某個(gè)分支:
git branch -D branchname
合并分支:可能會(huì)遇到分支合并沖突(例如不同的分支均修改了之前相同文件中的同一地方代碼,合并沖突時(shí)需要人為解決)
git merge branchname
將本地倉(cāng)庫(kù)與遠(yuǎn)程倉(cāng)庫(kù)連接起來(lái):
git remote add origin 遠(yuǎn)程倉(cāng)庫(kù)地址
推送當(dāng)前分支最新的提交到遠(yuǎn)程代碼庫(kù):
git push
拉取遠(yuǎn)程分支最新的提交到本地:
git pull
將拉取遠(yuǎn)程倉(cāng)庫(kù)內(nèi)容與本地倉(cāng)庫(kù)內(nèi)容融合: git pull --rebase origin master
3. git、VS code、Github聯(lián)合使用方法
git 和VScode安裝完成后,在vscode中安裝插件“Gitlens” 用vscode打開(kāi)項(xiàng)目文件夾。 在vscode終端中添加一個(gè)git bash終端,用于輸入git命令建立和管理倉(cāng)庫(kù) 依次進(jìn)行如下操作:
git init //初始化
git add . //將當(dāng)前目錄下修改的所有代碼從工作區(qū)添加到暫存區(qū)
git commit -m “注釋” //將緩存區(qū)內(nèi)容添加到本地倉(cāng)庫(kù)
git remote add origin 遠(yuǎn)程倉(cāng)庫(kù)地址 //將本地倉(cāng)庫(kù)與遠(yuǎn)程倉(cāng)庫(kù)連接起來(lái)
git push origin master //將項(xiàng)目推送到遠(yuǎn)程倉(cāng)庫(kù)的master分支上
在推送過(guò)程中可能會(huì)讓你登錄Github賬號(hào),授予推送權(quán)限。有一種用SSH密鑰的方法,可以避免每次需要進(jìn)行GitHub登錄驗(yàn)證,如下。
4. Git配置Github遠(yuǎn)程倉(cāng)庫(kù)SSH密鑰
設(shè)置本地git賬戶郵箱和用戶名:
git config --global user.name "your username"
git config --global user.email "your email"
生成新的SSH密鑰:
ssh-keygen -t rsa -C "your email" //第一次配置連續(xù)敲回車(chē)即可,如果重新配置 選y再回車(chē)即可
查看生成的密鑰:
cat ~/.ssh/id_rsa.pub
將密鑰復(fù)制到Github賬戶的SSH key中,點(diǎn)擊add ssh key:
成功狀態(tài)如下:
之后再用git remote add origin 遠(yuǎn)程倉(cāng)庫(kù)地址 ,將本地倉(cāng)庫(kù)與遠(yuǎn)程倉(cāng)庫(kù)連接,就可以直接git push或pull。
5. 常見(jiàn)問(wèn)題
git push或者git pull時(shí),出現(xiàn)連接不上的提示(fatal: unable to access ‘XXX‘: Recv failure: Connection was reset),首先看看瀏覽器網(wǎng)頁(yè)是否可以直接訪問(wèn)github;如果直接可以訪問(wèn)github網(wǎng)頁(yè),但依然報(bào)錯(cuò),就需要刷新一下設(shè)置:
git config --global --unset http.proxy
git config --global --unset https.proxy
并且在電腦cmd命令行中輸入ipconfig/flushdns,刷新一下DNS
git push后顯示如下提示,表示遠(yuǎn)程倉(cāng)庫(kù)和本地倉(cāng)庫(kù)中,有的文件遠(yuǎn)程倉(cāng)庫(kù)有,本地卻沒(méi)有。需要先git pull --rebase origin master 拉取一下遠(yuǎn)程倉(cāng)庫(kù)中本地沒(méi)有的文件到本地倉(cāng)庫(kù),在進(jìn)行g(shù)it push推送。
柚子快報(bào)邀請(qǐng)碼778899分享:Git與Github常用方法
推薦閱讀
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。