配置 GitHub
- 進(jìn)入 https://github.com/settings/keys
- 如果頁(yè)面里已經(jīng)有一些 key瓣距,就點(diǎn)「delete」按鈕把這些 key 全刪掉汽煮。如果沒(méi)有锻煌,就往下看
- 點(diǎn)擊 New SSH key,你需要輸入 Title 和 Key姻蚓,但是你現(xiàn)在沒(méi)有 key宋梧,往下看
- 打開(kāi) Git Bash
- 復(fù)制并運(yùn)行
rm -rf ~/.ssh/*
把現(xiàn)有的 ssh key 都刪掉,這句命令行如果你多打一個(gè)空格狰挡,可能就要重裝系統(tǒng)了捂龄,建議復(fù)制運(yùn)行。 - 運(yùn)行
ssh-keygen -t rsa -b 4096 -C "你的郵箱"
加叁,注意填寫(xiě)你的郵箱倦沧! - 按回車三次
- 運(yùn)行
cat ~/.ssh/id_rsa.pub
,得到一串東西它匕,完整的復(fù)制這串東西 - 回到上面第 3 步的頁(yè)面刀脏,在 Title 輸入「我的第一個(gè) key」
- 在 Key 里粘貼剛剛你你復(fù)制的那串東西
- 點(diǎn)擊 Add SSH key
- 回到 Git Bash
- 運(yùn)行
ssh -T git@github.com
, 輸入 yes 回車 - 然后如果你看到
Permission denied (publickey).
就說(shuō)明你失敗了超凳,請(qǐng)回到第 1 步重來(lái)愈污,是的,回到第 1 步重來(lái)轮傍;如果你看到Hi FrankFang! You've successfully authenticated, but GitHub does not provide shell access.
就說(shuō)明你成功了暂雹!
好了,終于添加了一個(gè)SSH key创夜,不要問(wèn)我這個(gè)有什么用杭跪,因?yàn)橐粫?huì)兒你就會(huì)用到它,你想了解原理就看這篇 文章
注意:
- 一臺(tái)電腦只需要一個(gè) SSH key
- 一個(gè) SSH key 可以訪問(wèn)你的所有倉(cāng)庫(kù)驰吓,即使你有 1000000 個(gè)倉(cāng)庫(kù)涧尿,都沒(méi)問(wèn)題
- 如果你新買(mǎi)了電腦,就在新電腦上重新生成一個(gè) SSH key檬贰,把這個(gè) key 也上傳到 GitHub姑廉,它可以和之前的 key 共存在 GitHub 上
- 如果你把 key 從電腦上刪除了,重新生成一個(gè) key 即可翁涤,替換之前的 key
配置 git
在gitbash中依次輸入下面命令:
git config --global user.name 你的英文名
git config --global user.email 你的郵箱
git config --global push.default matching
git config --global core.quotepath false
git config --global core.editor "vim"
五句話桥言,依次運(yùn)行,必須~~~
使用Git(已經(jīng)安裝和配置好Git)
使用 git 有三種方式葵礼,請(qǐng)按照你的需求選擇
1.只在本地使用
2.將本地倉(cāng)庫(kù)上傳到 GitHub
3.下載 GitHub 上的倉(cāng)庫(kù)
1 只在本地使用
1.1 初始化
創(chuàng)建目錄作為我們的項(xiàng)目目錄:mkdir git-demo-1
進(jìn)入目錄 cd git-demo-1
git init号阿,這句命令會(huì)在 git-demo-1 里創(chuàng)建一個(gè) .git 目錄
ls -la 你就會(huì)看到 .git 目錄,它就是一個(gè)「?jìng)}庫(kù)」鸳粉,不要進(jìn)去看扔涧,這倉(cāng)庫(kù)里面有毒,別進(jìn)去届谈!
在 git-demo-1 目錄里面添加任意文件枯夜,假設(shè)我們添加了兩個(gè)文件,分別是 index.html 和 css/style.css
touch index.html
mkdir css
touch css/style.css
運(yùn)行 git status -sb
可以看到文件前面有 ?? 號(hào)
## Initial commit on master
?? css/
?? index.html
這個(gè) ?? 表示 git 一臉懵逼疼约,不知道你要怎么對(duì)待這些變動(dòng)卤档。
使用 git add 將文件添加到「暫存區(qū)」
你可以一個(gè)一個(gè)地 add
git add index.html
git add css/style.css
你也可以一次性 add
git add .
意思是把當(dāng)前目錄(.表示當(dāng)前目錄)里面的變動(dòng)都加到「暫存區(qū)」
再次運(yùn)行git status -sb
,可以看到 ?? 變成了 A
## Initial commit on master
A css/style.css
A index.html
A 的意思就是添加程剥,也就是說(shuō)你告訴 git劝枣,這些文件我要加到倉(cāng)庫(kù)里
使用 git commit -m "2018-3-7提交"
將你 add 過(guò)的內(nèi)容「正式提交」到本地倉(cāng)庫(kù)(.git就是本地倉(cāng)庫(kù)),并添加一些注釋信息织鲸,方便日后查閱
你可以一個(gè)一個(gè)地 commit
git commit index.html -m ' 添加index.html'
git commit css/style.css -m "添加 css/style.css"
你也可以一次性 commit
git commit . -m "添加了幾個(gè)文件"
再再次運(yùn)行git status -sb
舔腾,發(fā)現(xiàn)沒(méi)有文件變動(dòng)了,這是因?yàn)槲募淖儎?dòng)已經(jīng)記錄在倉(cāng)庫(kù)里了搂擦。
這時(shí)你使用 git log
就可以看到歷史上的變動(dòng):
commit f0d95058cd32a332b98967f6c0a701c64a00810a
Author: frankfang <frankfang1990@gmail.com>
Date: Thu Sep 28 22:30:43 2017 +0800
添加幾個(gè)文件
以上就是 git add / git commit 的一次完整過(guò)程稳诚,可以看到,挺復(fù)雜的瀑踢。原則上扳还,你錯(cuò)了任何一步才避,就給我從頭來(lái)一遍,做到你不會(huì)再手抖為止氨距。
1.2 文件變動(dòng)
如果我想繼續(xù)改文件桑逝,應(yīng)該怎么做呢?
start css/style.css
會(huì)使用默認(rèn)的編輯器打開(kāi)css/style.css(macOS 上對(duì)應(yīng)的命令是 open css/style.css)
然后我們?cè)?css/style.css 里寫(xiě)入body {background: red}
俏让,保存退出
運(yùn)行 git status -sb
發(fā)現(xiàn)提示中有一個(gè) M
## master
M css/style.css
這個(gè) M 的意思就是 Modified楞遏,表示這個(gè)文件被修改了
此時(shí)你如果想讓改動(dòng)保存到倉(cāng)庫(kù)里,你需要先 git add css/style.css
或者也可以 git add .
注意首昔,由于這個(gè) css/style.css 以前被我們 add 過(guò)寡喝,你往文章上面看,我們是 add 過(guò) css/style.css 的勒奇,所以此處的 git add 操作可以省略预鬓,但我建議你使用 git 的前一個(gè)月,不要省略 git add撬陵。
換句話說(shuō)珊皿,每一次改動(dòng),都要經(jīng)過(guò) git add
和 git commit
兩個(gè)命令巨税,才能被添加到 .git 本地倉(cāng)庫(kù)里蟋定。
再次運(yùn)行git status -sb
發(fā)現(xiàn) M 有紅色變成了綠色,紅色和綠色有啥區(qū)別呢草添?別管它們的區(qū)別驶兜,記住我說(shuō)的,先 add远寸,再 commit抄淑,等你熟練之后再去理解區(qū)別。
先形成肌肉記憶驰后,在去形成大腦記憶肆资!
運(yùn)行 git commit -m "更新 css/style.css"
,這個(gè)改動(dòng)就被提交到 .git 本地倉(cāng)庫(kù)了灶芝。再說(shuō)一次郑原,不要去 .git 目錄里面,那里的東西你一無(wú)所知夜涕。
再再次運(yùn)行git status -sb
犯犁,會(huì)發(fā)現(xiàn)沒(méi)有變更了,這說(shuō)明所有變動(dòng)都被本地倉(cāng)庫(kù)記錄在案了女器。
這里來(lái)透露一下git status -sb
是什么意思:git status 是用來(lái)顯示當(dāng)前的文件狀態(tài)的酸役,哪個(gè)文件變動(dòng)了,方便你進(jìn)行 git add 操作。-sb 選項(xiàng)的意思就是涣澡,SB都能看懂贱呐,哈,這是開(kāi)玩笑暑塑,-s 的意思是顯示總結(jié)(summary)吼句,-b 的意思是顯示分支(branch),所以 -sb 的意思是顯示總結(jié)和分支事格。
git log
文件變動(dòng)
1.3 總結(jié)
至此,我們來(lái)總結(jié)一下用到的命令
1.git init
搞隐,初始化本地倉(cāng)庫(kù) .git
2.git status -sb
驹愚,顯示當(dāng)前所有文件的狀態(tài)
3.git add 文件路徑
,用來(lái)將變動(dòng)加到暫存區(qū)
4.git commit -m "信息"
劣纲,用來(lái)正式提交變動(dòng)逢捺,提交至 .git 倉(cāng)庫(kù)
5.如果有新的變動(dòng),我們只需要依次執(zhí)行 git add xxx
和 git commit -m 'xxx'
兩個(gè)命令即可癞季。別看本教程廢話那么多劫瞳,其實(shí)就這一句有用!先 add 再 commit绷柒,行了志于,你學(xué)會(huì) git 了。
6.git log 查看變更歷史
實(shí)踐錯(cuò)誤:
Administrator@EFHOAWOWXTYAPPG MINGW64 /e/01wh/blogs (master)
$ git remote add origin git@github.com:wh0629/blogs.git
fatal: remote origin already exists.//報(bào)錯(cuò)
Administrator@EFHOAWOWXTYAPPG MINGW64 /e/01wh/blogs (master)
$ git remote rm origin //解決方法
Administrator@EFHOAWOWXTYAPPG MINGW64 /e/01wh/blogs (master)
$ git remote add origin git@github.com:wh0629/blogs.git
Administrator@EFHOAWOWXTYAPPG MINGW64 /e/01wh/blogs (master)
$ git push -u origin master
Counting objects: 8, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (8/8), 754 bytes | 251.00 KiB/s, done.
Total 8 (delta 0), reused 0 (delta 0)
To github.com:wh0629/blogs.git
29ba9ab..0c99718 master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.
2.將本地倉(cāng)庫(kù)上傳到 GitHub
-
在 GitHub 上新建一個(gè)空倉(cāng)庫(kù)废睦,名稱隨意伺绽,一般可以跟本地目錄名一致,也叫做 git-demo-1
除了倉(cāng)庫(kù)名嗜湃,其他的什么都別改奈应,其他的什么都別改,其他的什么都別改购披,其他的什么都別改杖挣,這樣你才能創(chuàng)建一個(gè)空倉(cāng)庫(kù)
- 點(diǎn)擊創(chuàng)建按鈕之后,GitHub 就會(huì)把后續(xù)的操作全告訴你刚陡,如圖
- 看圖惩妇,點(diǎn)擊 SSH 按鈕,點(diǎn)擊 SSH 按鈕橘荠,點(diǎn)擊 SSH 按鈕屿附,我想你現(xiàn)在肯定不會(huì)忘了點(diǎn)擊 SSH 按鈕了吧~~~~如果不點(diǎn)擊這個(gè)按鈕,你就會(huì)使用默認(rèn)的 HTTPS 地址哥童。但是千萬(wàn)不要使用 HTTPS 地址挺份,因?yàn)?HTTPS 地址使用起來(lái)特別麻煩,每次都要輸入密碼贮懈,而 SSH 不用輸入用戶名密碼匀泊。
為什么 SSH 不用密碼呢优训,因?yàn)槟阋呀?jīng)上傳了 SSH public key。還記得嗎各聘?如果不記得揣非,翻到本文第一部分「配置 GitHub」章節(jié)。 - 由于我們已經(jīng)有本地倉(cāng)庫(kù)了躲因,所以看圖早敬,圖中下面半部分就是你需要的命令,我們一行一行拷貝過(guò)來(lái)執(zhí)行
- 找到圖中的「…or push an existing repository from the command line」這一行大脉,你會(huì)看到
git remote add origin https://github.com/xxxxxxxxxx/git-demo-1.git
搞监, 如果你發(fā)現(xiàn)這個(gè)地址是 https 開(kāi)頭的,那你就做錯(cuò)了镰矿,還記得嗎琐驴,我們要使用 SSH 地址,GitHub 的 SSH 地址是以 git@github.com 開(kāi)頭的秤标。 - 再次點(diǎn)擊 SSH 按鈕绝淡,不管我強(qiáng)調(diào)多少遍,總會(huì)有人忘記點(diǎn)擊 SSH 按鈕苍姜,為什么呢牢酵?我也不知道,為了防止你忘了點(diǎn)擊 SSH 按鈕怖现,我最后再說(shuō)一遍茁帽,「點(diǎn)擊 SSH按鈕」,點(diǎn)擊之后屈嗤,整個(gè)世界就會(huì)變得美好起來(lái)潘拨。
- 得到新的命令
git remote add origin git@github.com:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/git-demo-1.git
,復(fù)制并運(yùn)行它 - 復(fù)制第二行
git push -u origin master
饶号,運(yùn)行它 - 刷新當(dāng)前頁(yè)面铁追,你的倉(cāng)庫(kù)就上傳到 GitHub 了!是不是特別簡(jiǎn)單茫船?只要你按照我說(shuō)的做琅束,一絲不茍,即可算谈。
- 找到圖中的「…or push an existing repository from the command line」這一行大脉,你會(huì)看到
3 .直接在 GitHub 創(chuàng)建一個(gè)倉(cāng)庫(kù)涩禀,然后下載到本地
上面兩步講了
- 在本地創(chuàng)建倉(cāng)庫(kù)
- 將本地倉(cāng)庫(kù)上傳到 GitHub
這里將第三種用法,那就是直接在 GitHub 創(chuàng)建一個(gè)倉(cāng)庫(kù)然眼,然后下載到本地艾船。
-
在GitHub 上新建一個(gè)倉(cāng)庫(kù) git-demo-2,這次就不創(chuàng)建空倉(cāng)庫(kù)了,而是自帶 README 和 Lisence 的倉(cāng)庫(kù)屿岂,創(chuàng)建截圖如下:
請(qǐng)按圖中所示践宴,填寫(xiě)一模一樣的內(nèi)容,然后點(diǎn)擊創(chuàng)建按鈕爷怀。
-
這樣一來(lái)阻肩,這個(gè)倉(cāng)庫(kù)就會(huì)自動(dòng)擁有三個(gè)文件:
- 這三個(gè)文件的作用請(qǐng)自行了解:.gitignore 的作用、README.md 的作用 以及 LISENCE 的作用
- 好了运授,現(xiàn)在遠(yuǎn)程倉(cāng)庫(kù)已經(jīng)創(chuàng)建好了烤惊,怎么下載到我們的本地(也就是我們的電腦上)呢?答案是使用 git clone 命令
- 點(diǎn)擊頁(yè)面中唯一的綠色按鈕「clone or download」吁朦,會(huì)看到一個(gè)彈出層
- 請(qǐng)確保彈出層里的地址是 SSH 地址撕氧,也就是 git@github.com 開(kāi)頭的地址,如果不是喇完,就點(diǎn)擊 Use SSH 按鈕,就點(diǎn)擊 Use SSH 按鈕剥啤,就點(diǎn)擊 Use SSH 按鈕锦溪。然后復(fù)制這個(gè)地址。
- 打開(kāi) Git Bash府怯,找一個(gè)安全的目錄刻诊,比如 ~/Desktop 桌面目錄就很安全:
cd ~/Desktop
。運(yùn)行牺丙。 - 運(yùn)行
git clone 你剛才得到的以git@github.com開(kāi)頭的地址
则涯,運(yùn)行完了你就會(huì)發(fā)現(xiàn),桌面上多出一個(gè) git-demo-2 目錄冲簿。我再說(shuō)一遍粟判,桌面上多出一個(gè) git-demo-2 目錄。我再說(shuō)一遍峦剔,桌面上多出一個(gè) git-demo-2 目錄档礁。這個(gè)細(xì)節(jié)很重要,很多小白發(fā)現(xiàn)不了這個(gè)細(xì)節(jié)吝沫,我也不知道他們是眼瞎還是怎么了…… - 進(jìn)入這個(gè)多出來(lái)的目錄呻澜,對(duì)的,你肯定會(huì)忽略這一步惨险。
- 進(jìn)入這個(gè)多出來(lái)的目錄羹幸,對(duì)的,你肯定會(huì)忽略這一步辫愉。
- 進(jìn)入這個(gè)多出來(lái)的目錄栅受,對(duì)的,你肯定會(huì)忽略這一步。
- 好了你進(jìn)入了這個(gè)目錄了窘疮,如果沒(méi)有袋哼,我就要吐血了,因?yàn)槲业奶崾竞苊黠@闸衫。
- 運(yùn)行
ls -la
你會(huì)看到涛贯,遠(yuǎn)程目錄的所有文件都在這里出現(xiàn)了,另外你還看到了 .git 本地倉(cāng)庫(kù)蔚出。這是你就可以添加文件弟翘,git add,然后 git commit 了骄酗。
三種方式都說(shuō)完了稀余,它們分別是:
- 在本地創(chuàng)建倉(cāng)庫(kù)
- 將本地倉(cāng)庫(kù)上傳到 GitHub
- 下載 GitHub 上的倉(cāng)庫(kù)到本地
其實(shí)呢,我還可以說(shuō)很多種不同的方式趋翻,但是睛琳,你記住這幾種就行了,夠你用的了踏烙。我們并不想要了解 git 的所有高級(jí)用法师骗,我們的目的很明確:能通過(guò) Git 命令使用 GitHub 就行。
我們?cè)倩仡櫼槐橐呀?jīng)學(xué)到的命令:(這次只多了一個(gè) git clone 命令)
- git clone git@github.com:xxxx讨惩,下載倉(cāng)庫(kù)
- git init辟癌,初始化本地倉(cāng)庫(kù) .git
- git status -sb,顯示當(dāng)前所有文件的狀態(tài)
- git add 文件路徑荐捻,用來(lái)將變動(dòng)加到暫存區(qū)
- git commit -m "信息"黍少,用來(lái)正式提交變動(dòng),提交至 .git 倉(cāng)庫(kù)
- 如果有新的變動(dòng)处面,我們只需要依次執(zhí)行 git add xxx 和 git commit -m 'xxx' 兩個(gè)命令即可厂置。別看本教程廢話那么多,其實(shí)就這一句有用鸳君!先 add 再 commit农渊,行了,你學(xué)會(huì) git 了或颊。
- git log 查看變更歷史
如何上傳更新
你在本地目錄有任何變動(dòng)砸紊,只需按照以下順序就能上傳:
- git add 文件路徑
- git commit -m "信息"
- git pull (相信我,你一定會(huì)忘記這一個(gè)命令)
- git push
下面是例子
cd git-demo-1
touch index2.html
git add index2.html
git commit -m "新建 index2.html"
git pull
git push
然后你去 git-demo-1 的 GitHub 頁(yè)面囱挑,就能看到 index2.html 出現(xiàn)在里面了醉顽。是不是很……簡(jiǎn)……單……呢……
4.使用 GitHub Pages 預(yù)覽 HTML
注意只能預(yù)覽 HTML,不能預(yù)覽 Markdown平挑。
- 在 GitHub 新建一個(gè)倉(cāng)庫(kù) x1
- 在 x1 里面新建一個(gè) HTML 比如 y1.html游添,文件內(nèi)容為
「<h1>這是一個(gè)HTML</h1>」
- 新建文件的方法可以是使用 git add git commit git push
- 也可以是直接在網(wǎng)頁(yè)上操作系草,隨便你怎么新建文件
- 點(diǎn)擊 Settings
- 往下滾動(dòng)頁(yè)面
- 選中 master branch 然后點(diǎn)擊 Save
- 得到一個(gè)預(yù)覽鏈接,假設(shè)預(yù)覽鏈接是 https://zzzzzzzzz/
- 訪問(wèn) https://zzzzzzzzz/y1.html 即可預(yù)覽 y1.html
- 新建 y2.html唆涝,git add git commit git push找都,等一分鐘,訪問(wèn) https://zzzzzzzzz/y2.html 即可預(yù)覽 y2.html
- 新建 y3.html廊酣,git add git commit git push能耻,等一分鐘,訪問(wèn) https://zzzzzzzzz/y3.html 即可預(yù)覽 y3.html