參考廖雪峰老師的教程:Git教程?
廖老師已經(jīng)講得很詳細(xì)了,我在這里是把自己在電腦上操作的部分作為筆記保存下來(lái)(從最基本的開(kāi)始)
集中式版本控制系統(tǒng)(CVS虽缕、SVN):版本庫(kù)放在中央服務(wù)器始藕。工作時(shí)時(shí)先從中央服務(wù)器獲取最新版本,做完以后再推送給中央服務(wù)器彼宠,而且必須聯(lián)網(wǎng)才能工作鳄虱。中央服務(wù)器一旦崩潰,就全盤(pán)皆輸凭峡。
分布式版本控制系統(tǒng)(Git):沒(méi)有所謂的中央服務(wù)器拙已,每一臺(tái)電腦都是一個(gè)完整的版本庫(kù),所以可以不聯(lián)網(wǎng)操作摧冀,修改完成后可以把自己產(chǎn)物推送給好友倍踪,就可以互相看到效果系宫。安全性高,一臺(tái)電腦壞了不會(huì)影響其他人建车。
所謂的GitHub其實(shí)是遠(yuǎn)程代碼托管扩借,可以用來(lái)托管Git中的代碼庫(kù),下載本地Git缤至,在自己電腦上操作代碼和管理代碼庫(kù)潮罪,為了便于管理、方便與他人共享领斥、安全等選擇將代碼托管到GitHub上
下載本地Git嫉到, 打開(kāi)Git Bash
輸入? git config --global user.name "name"? 可設(shè)置姓名(查看時(shí)去掉 "name")
輸入? git config --global user.email "email"? 可設(shè)置郵箱(查看時(shí)去掉 "email")
1.輸入? mkdir ?learngit? 即可建立一個(gè)名為learngit的文件夾(該文件夾位于C:\Users\hi\learngit)
2.然后? cd learngit? 轉(zhuǎn)入到learngit這個(gè)文件夾
3.使用? pwd? 用于顯示這個(gè)文件夾 ?顯示結(jié)果如:/c/Users/hi/learngit
4.最后使用? git init? 把這個(gè)目錄變成Git可以管理的倉(cāng)庫(kù)。同時(shí)會(huì)在該目錄中自動(dòng)生成一個(gè).git ?的目錄月洛,該目錄是用來(lái)跟蹤管理版本庫(kù)的何恶,最好不要修改(如果看不到,是因?yàn)檫@個(gè)目錄默認(rèn)是隱藏的嚼黔,用 ls -ah 即可查看)
O覆恪!唬涧!版本控制系統(tǒng)只會(huì)對(duì)純文本(TXT)疫赎、網(wǎng)頁(yè)、程序代碼進(jìn)行跟蹤爵卒,對(duì)圖片虚缎、word等無(wú)法跟蹤,所以要使用純文本進(jìn)行編寫(xiě)文件钓株,并且使用標(biāo)準(zhǔn)的UTF -8編碼
1.在learngit文件夾下創(chuàng)建一個(gè)文本(記住不要用自帶的記事本),如 ?readme.txt
2.使用? git add readme.txt? 把文本添加到版本庫(kù)(執(zhí)行命令后不會(huì)有什么反應(yīng)陌僵,這是正常的)
3.使用? git commit -m "wrote a readme file"? 把文件提交到版本庫(kù)轴合," "中注明的是改動(dòng)消息
使用? git status? 可以查看倉(cāng)庫(kù)當(dāng)前的狀態(tài)
當(dāng)倉(cāng)庫(kù)中有內(nèi)容被修改,可以使用? git diff? 查看具體修改了什么內(nèi)容(這個(gè)命令也比較好記碗短,diff不就是difference的縮寫(xiě)嗎)
確認(rèn)修改信息可行后受葛,即可進(jìn)行下一步操作,同前面方法:先添加(git add readme.txt)偎谁,然后提交(git commit -m "add a distributed")
使用? git log? 可以查看提交的歷史記錄,使用? git log --pretty=oneline? 可以使顯示的更清晰簡(jiǎn)潔哦
使用? git reset --hard HEAD^? 可以退回到上一個(gè)版本(HEAD表示當(dāng)前版本总滩,HEAD^^表示上上個(gè)版本,類推巡雨,版本過(guò)多闰渔,可以使用 HEAD~20 表示向上20個(gè)版本,當(dāng)然這些 HEAD 前面的命令都得加上)
退回版本后铐望,再次使用? git log? 會(huì)丟失該版本之后的版本冈涧,如果又想回到這些已丟失的版本茂附,那么可以使用? git reset --hard 123456? (此處的123456 是指 id號(hào)的前幾位,當(dāng)然 id 號(hào)越完整搜索的越精確嘍)督弓,id 號(hào)如下圖中的前面一大串字符
如果關(guān)閉了命令窗口营曼,再次啟動(dòng)時(shí),可以使用? git reflog? 來(lái)查看之前的命令記錄愚隧,如下圖蒂阱。在這里可以看到id號(hào),所以可以再根據(jù)? git reset --hard 123456? (此處的123456 是指 id號(hào)的前幾位)跳轉(zhuǎn)到相應(yīng)的版本嘍
與GitHub進(jìn)行聯(lián)系
1.創(chuàng)建SSH Key狂塘,使用? ssh-keygen -t rsa -C "email"? 一直回車即可录煤,結(jié)束后會(huì)在C盤(pán)用戶目錄下生成一個(gè) .ssh的文件夾,里面有 id_rsa 和 id_rsa.pub兩個(gè)文件
2.進(jìn)入自己的GitHub主頁(yè)睹耐,進(jìn)入setting ——SSH and GPG keys ——New SSH key辐赞,如下圖
3.Title可以自由輸入,用編輯器打開(kāi) id_rsa.pub 文件硝训,將內(nèi)容復(fù)制粘貼到上圖的 Key 編輯框中响委,點(diǎn)擊Add SSH key即可(之所以添加這個(gè)SSH Key就是為了在向 GitHub提交信息時(shí),能夠驗(yàn)證提交者的身份)
在GitHub中添加倉(cāng)庫(kù)
1.窖梁,選擇這個(gè) + 號(hào)下的 New repository 赘风,進(jìn)入后自行填寫(xiě)即可
2.使用? git remote add origin git@github.com:name/learngit.git? (此處的name是指自己的GitHub名),將本地的 learngit 倉(cāng)庫(kù)關(guān)聯(lián)到GitHub纵刘,第一次使用時(shí)會(huì)有提示確認(rèn)SSH是否是自己的邀窃,yes即可
3.使用? git push origin master? 把本地的最新修改推送至GitHub,然后就可以在GitHub上刷新頁(yè)面即可看到下面效果
從遠(yuǎn)程庫(kù)克隆
1.在GitHub上新建一個(gè)repository,名為 gitskill假哎,此時(shí)注意勾選
2.使用? git clone git@github.com:huangkunkun/gitskill.git? 該命令用于將GitHub中新建的 gitskill 克隆到本地瞬捕,可以通過(guò)cd gitskill及l(fā)s查看到克隆信息,此時(shí)打開(kāi)本地的 learngit 文件夾舵抹,會(huì)發(fā)現(xiàn)多了一個(gè) gitskill 文件夾肪虎,即為從GitHub上克隆所得
未完待續(xù)!