配置 GitHub
- 進入 https://github.com/settings/keys
- 如果頁面里已經(jīng)有一些 key,就點「delete」按鈕把這些 key 全刪掉捻脖。如果沒有鸠窗,就往下看
- 點擊 New SSH key,你需要輸入 Title 和 Key比被,但是你現(xiàn)在沒有 key色难,往下看
- 打開 Git Bash
- 復制并運行
rm -rf ~/.ssh/*
把現(xiàn)有的 ssh key 都刪掉,這句命令行如果你多打一個空格等缀,可能就要重裝系統(tǒng)了枷莉,建議復制運行。 - 運行
ssh-keygen -t rsa -b 4096 -C "你的郵箱"
尺迂,注意填寫你的郵箱笤妙! - 按回車三次
- 運行
cat ~/.ssh/id_rsa.pub
,得到一串東西噪裕,完整的復制這串東西 - 回到上面第 3 步的頁面蹲盘,在 Title 輸入「我的第一個 key」
- 在 Key 里粘貼剛剛你你復制的那串東西
- 點擊 Add SSH key
- 回到 Git Bash
- 運行
ssh -T git@github.com
,你可能會看到這樣的提示:
輸入 yes 回車……問你話你就答州疾,別傻在那 - 然后如果你看到
Permission denied (publickey).
就說明你失敗了辜限,請回到第 1 步重來,是的严蓖,回到第 1 步重來薄嫡;如果你看到Hi FrankFang! You've successfully authenticated, but GitHub does not provide shell access.
就說明你成功了!
好了颗胡,終于 TMD 添加了一個無聊的 SSH key毫深,不要問我這個有什么用,因為一會兒你就會用到它毒姨,你想了解原理就看這篇 文章
如果要講清楚哑蔫,太浪費時間了,我們只是想用用 GitHub 而已弧呐。
- 一臺電腦只需要一個 SSH key
- 一個 SSH key 可以訪問你的所有倉庫闸迷,即使你有 1000000 個倉庫,都沒問題
- 如果你新買了電腦俘枫,就在新電腦上重新生成一個 SSH key腥沽,把這個 key 也上傳到 GitHub,它可以和之前的 key 共存在 GitHub 上
- 如果你把 key 從電腦上刪除了鸠蚪,重新生成一個 key 即可今阳,替換之前的 key
配置 git
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"
五句話师溅,依次運行。不執(zhí)行的話盾舌,電腦可能會爆炸你信不信墓臭。
使用 git
使用 git 有三種方式,請按照你的需求選擇
- 只在本地使用
- 將本地倉庫上傳到 GitHub
- 下載 GitHub 上的倉庫
1 只在本地使用
1.1 初始化
創(chuàng)建目錄作為我們的項目目錄:
mkdir git-demo-1
進入目錄
cd git-demo-1
git init
妖谴,這句命令會在 git-demo-1 里創(chuàng)建一個 .git 目錄ls -la
你就會看到 .git 目錄窿锉,它就是一個「倉庫」,不要進去看窖维,這倉庫里面有毒榆综,別進去!-
在 git-demo-1 目錄里面添加任意文件铸史,假設我們添加了兩個文件,分別是 index.html 和 css/style.css
touch index.html
mkdir css
touch css/style.css
-
運行
git status -sb
可以看到文件前面有 ?? 號## Initial commit on master ?? css/ ?? index.html
這個 ?? 表示 git 一臉懵逼怯伊,不知道你要怎么對待這些變動琳轿。
-
使用 git add 將文件添加到「暫存區(qū)」
- 你可以一個一個地 add
git add index.html
git add css/style.css
- 你也可以一次性 add
-
git add .
意思是把當前目錄(.表示當前目錄)里面的變動都加到「暫存區(qū)」
-
- 你可以一個一個地 add
-
再次運行
git status -sb
,可以看到 ?? 變成了 A## Initial commit on master A css/style.css A index.html
A 的意思就是添加耿芹,也就是說你告訴 git崭篡,這些文件我要加到倉庫里
-
使用 git commit -m "信息" 將你 add 過的內容「正式提交」到本地倉庫(.git就是本地倉庫),并添加一些注釋信息吧秕,方便日后查閱
- 你可以一個一個地 commit
git commit index.html -m '添加index.html'
git commit css/style.css -m "添加 css/style.css"
- 你也可以一次性 commit
git commit . -m "添加了幾個文件"
- 你可以一個一個地 commit
再再次運行
git status -sb
琉闪,發(fā)現(xiàn)沒有文件變動了,這是因為文件的變動已經(jīng)記錄在倉庫里了砸彬。這時你使用 git log 就可以看到歷史上的變動:
```
commit f0d95058cd32a332b98967f6c0a701c64a00810a
Author: frankfang <frankfang1990@gmail.com>
Date: Thu Sep 28 22:30:43 2017 +0800
添加幾個文件
```
- 以上就是 git add / git commit 的一次完整過程颠毙,可以看到,挺復雜的砂碉。原則上蛀蜜,你錯了任何一步,就給我從頭來一遍增蹭,做到你不會再手抖為止滴某。
1.2 文件變動
如果我想繼續(xù)改文件,應該怎么做呢滋迈?
start css/style.css
會使用默認的編輯器打開 css/style.css(macOS 上對應的命令是open css/style.css
)然后我們在 css/style.css 里寫入
body {background: red}
霎奢,保存退出-
運行
git status -sb
發(fā)現(xiàn)提示中有一個 M## master M css/style.css
這個 M 的意思就是 Modified,表示這個文件被修改了
此時你如果想讓改動保存到倉庫里饼灿,你需要先
git add css/style.css
或者也可以git add .
注意幕侠,由于這個 css/style.css 以前被我們 add 過,你往文章上面看赔退,我們是 add 過 css/style.css 的橙依,所以此處的 git add 操作可以省略证舟,但我建議你使用 git 的前一個月,不要省略 git add窗骑。
換句話說女责,每一次改動,都要經(jīng)過 git add 和 git commit 兩個命令创译,才能被添加到 .git 本地倉庫里抵知。再次運行
git status -sb
發(fā)現(xiàn) M 有紅色變成了綠色,紅色和綠色有啥區(qū)別呢软族?別管它們的區(qū)別刷喜,記住我說的,先 add立砸,再 commit掖疮,等你熟練之后再去理解區(qū)別。
先形成肌肉記憶颗祝,在去形成大腦記憶浊闪!運行
git commit -m "更新 css/style.css"
,這個改動就被提交到 .git 本地倉庫了螺戳。再說一次搁宾,不要去 .git 目錄里面,那里的東西你一無所知倔幼。再再次運行
git status -sb
盖腿,會發(fā)現(xiàn)沒有變更了,這說明所有變動都被本地倉庫記錄在案了损同。
這里來透露一下git status -sb
是什么意思:git status 是用來顯示當前的文件狀態(tài)的翩腐,哪個文件變動了,方便你進行 git add 操作揖庄。-sb 選項的意思就是栗菜,SB都能看懂,哈蹄梢,這是開玩笑疙筹,-s 的意思是顯示總結(summary),-b 的意思是顯示分支(branch)禁炒,所以 -sb 的意思是顯示總結和分支而咆。
1.3 總結
至此,我們來總結一下用到的命令
- git init幕袱,初始化本地倉庫 .git
- git status -sb暴备,顯示當前所有文件的狀態(tài)
- git add 文件路徑,用來將變動加到暫存區(qū)
- git commit -m "信息"们豌,用來正式提交變動涯捻,提交至 .git 倉庫
- 如果有新的變動浅妆,我們只需要依次執(zhí)行 git add xxx 和 git commit -m 'xxx' 兩個命令即可。別看本教程廢話那么多障癌,其實就這一句有用凌外!先 add 再 commit,行了涛浙,你學會 git 了康辑。
- git log 查看變更歷史
2 將本地倉庫上傳到 GitHub
如何將我們這個 git-demo-1 上傳到 GitHub 呢?
-
在 GitHub 上新建一個空倉庫轿亮,名稱隨意疮薇,一般可以跟本地目錄名一致,也叫做 git-demo-1
按照截圖所示我注,除了倉庫名按咒,其他的什么都別改,其他的什么都別改仓手,其他的什么都別改胖齐,其他的什么都別改,這樣你才能創(chuàng)建一個空倉庫
-
點擊創(chuàng)建按鈕之后嗽冒,GitHub 就會把后續(xù)的操作全告訴你,如圖
3.jpg 看圖补履,點擊 SSH 按鈕添坊,點擊 SSH 按鈕,點擊 SSH 按鈕箫锤,我想你現(xiàn)在肯定不會忘了點擊 SSH 按鈕了吧~~~~如果不點擊這個按鈕贬蛙,你就會使用默認的 HTTPS 地址。但是千萬不要使用 HTTPS 地址谚攒,因為 HTTPS 地址使用起來特別麻煩阳准,每次都要輸入密碼,而 SSH 不用輸入用戶名密碼网持。
為什么 SSH 不用密碼呢汪诉,因為你已經(jīng)上傳了 SSH public key晰赞。還記得嗎?如果不記得绕沈,翻到本文第一部分「配置 GitHub」章節(jié)。-
由于我們已經(jīng)有本地倉庫了帮寻,所以看圖乍狐,圖中下面半部分就是你需要的命令,我們一行一行拷貝過來執(zhí)行
- 找到圖中的「…or push an existing repository from the command line」這一行固逗,你會看到
git remote add origin https://github.com/xxxxxxxxxx/git-demo-1.git
浅蚪, 如果你發(fā)現(xiàn)這個地址是 https 開頭的藕帜,那你就做錯了,還記得嗎惜傲,我們要使用 SSH 地址洽故,GitHub 的 SSH 地址是以 git@github.com 開頭的。 - 再次點擊 SSH 按鈕操漠,不管我強調多少遍收津,總會有人忘記點擊 SSH 按鈕,為什么呢浊伙?我也不知道撞秋,為了防止你忘了點擊 SSH 按鈕,我最后再說一遍嚣鄙,「點擊 SSH按鈕」吻贿,點擊之后,整個世界就會變得美好起來哑子。
- 得到新的命令
git remote add origin git@github.com:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/git-demo-1.git
舅列,復制并運行它 - 復制第二行
git push -u origin master
,運行它 - 刷新當前頁面卧蜓,你的倉庫就上傳到 GitHub 了帐要!是不是特別簡單?只要你按照我說的做弥奸,一絲不茍榨惠,即可。
- 找到圖中的「…or push an existing repository from the command line」這一行固逗,你會看到
3 直接在 GitHub 創(chuàng)建一個倉庫盛霎,然后下載到本地
上面兩步講了
- 在本地創(chuàng)建倉庫
- 將本地倉庫上傳到 GitHub
這里將第三種用法赠橙,那就是直接在 GitHub 創(chuàng)建一個倉庫,然后下載到本地愤炸。
-
在GitHub 上新建一個倉庫 git-demo-2期揪,這次就不創(chuàng)建空倉庫了,而是自帶 README 和 Lisence 的倉庫规个,創(chuàng)建截圖如下:
請按圖中所示凤薛,填寫一模一樣的內容,然后點擊創(chuàng)建按鈕绰姻。
-
這樣一來枉侧,這個倉庫就會自動擁有三個文件:
這三個文件的作用請自行了解:.gitignore 的作用、README.md 的作用 以及 LISENCE 的作用
好了狂芋,現(xiàn)在遠程倉庫已經(jīng)創(chuàng)建好了榨馁,怎么下載到我們的本地(也就是我們的電腦上)呢?答案是使用 git clone 命令
-
點擊頁面中唯一的綠色按鈕「clone or download」帜矾,會看到一個彈出層
請確保彈出層里的地址是 SSH 地址翼虫,也就是 git@github.com 開頭的地址屑柔,如果不是,就點擊 Use SSH 按鈕珍剑,就點擊 Use SSH 按鈕掸宛,就點擊 Use SSH 按鈕。然后復制這個地址招拙。
打開 Git Bash唧瘾,找一個安全的目錄,比如 ~/Desktop 桌面目錄就很安全:
cd ~/Desktop
别凤。運行饰序。運行
git clone 你剛才得到的以git@github.com開頭的地址
,運行完了你就會發(fā)現(xiàn)规哪,桌面上多出一個 git-demo-2 目錄求豫。我再說一遍,桌面上多出一個 git-demo-2 目錄诉稍。我再說一遍蝠嘉,桌面上多出一個 git-demo-2 目錄。這個細節(jié)很重要杯巨,很多小白發(fā)現(xiàn)不了這個細節(jié)蚤告,我也不知道他們是眼瞎還是怎么了……進入這個多出來的目錄,對的服爷,你肯定會忽略這一步罩缴。
進入這個多出來的目錄,對的层扶,你肯定會忽略這一步。
進入這個多出來的目錄烙荷,對的镜会,你肯定會忽略這一步。
好了你進入了這個目錄了终抽,如果沒有戳表,我就要吐血了,因為我的提示很明顯昼伴。
運行
ls -la
你會看到匾旭,遠程目錄的所有文件都在這里出現(xiàn)了,另外你還看到了 .git 本地倉庫圃郊。這是你就可以添加文件价涝,git add,然后 git commit 了持舆。
三種方式都說完了色瘩,它們分別是:
- 在本地創(chuàng)建倉庫
- 將本地倉庫上傳到 GitHub
- 下載 GitHub 上的倉庫到本地
其實呢伪窖,我還可以說很多種不同的方式,但是居兆,你記住這幾種就行了覆山,夠你用的了。我們并不想要了解 git 的所有高級用法泥栖,我們的目的很明確:能通過 Git 命令使用 GitHub 就行簇宽。
我們再回顧一遍已經(jīng)學到的命令:(這次只多了一個 git clone 命令)
- git clone git@github.com:xxxx,下載倉庫
- git init吧享,初始化本地倉庫 .git
- git status -sb魏割,顯示當前所有文件的狀態(tài)
- git add 文件路徑,用來將變動加到暫存區(qū)
- git commit -m "信息"耙蔑,用來正式提交變動见妒,提交至 .git 倉庫
- 如果有新的變動,我們只需要依次執(zhí)行 git add xxx 和 git commit -m 'xxx' 兩個命令即可甸陌。別看本教程廢話那么多须揣,其實就這一句有用!先 add 再 commit钱豁,行了耻卡,你學會 git 了。
- git log 查看變更歷史
如何上傳更新
你在本地目錄有任何變動牲尺,只需按照以下順序就能上傳:
- git add 文件路徑
- git commit -m "信息"
- git pull (相信我卵酪,你一定會忘記這一個命令)
- 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 頁面,就能看到 index2.html 出現(xiàn)在里面了谤碳。是不是很……簡……單……呢……
其他
還有一些有用的命令
-
git remote add origin git@github.com:xxxxxxx.git
將本地倉庫與遠程倉庫關聯(lián) -
git remote set-url origin git@github.com:xxxxx.git
上一步手抖了溃卡,可以用這個命令來挽回 -
git branch
新建分支 -
git merge
合并分支 -
git stash
通靈術 -
git stash pop
反轉通靈術 -
git revert
后悔了 -
git reset
另一種后悔了 -
git diff
查看詳細變化
學 git 命令都夠你們學一周的,所以別妄想現(xiàn)在就掌握它蜒简,切記瘸羡。