git

配置 GitHub

  1. 進入 https://github.com/settings/keys
  2. 如果頁面里已經(jīng)有一些 key,就點「delete」按鈕把這些 key 全刪掉。如果沒有,就往下看
  3. 點擊 New SSH key,你需要輸入 Title 和 Key,但是你現(xiàn)在沒有 key,往下看
  4. 打開 Git Bash
  5. 復制并運行 rm -rf ~/.ssh/* 把現(xiàn)有的 ssh key 都刪掉,這句命令行如果你多打一個空格,可能就要重裝系統(tǒng)了,建議復制運行。
  6. 運行 ssh-keygen -t rsa -b 4096 -C "你的郵箱",注意填寫你的郵箱!
  7. 按回車三次
  8. 運行 cat ~/.ssh/id_rsa.pub,得到一串東西,完整的復制這串東西
  9. 回到上面第 3 步的頁面,在 Title 輸入「我的第一個 key」
  10. 在 Key 里粘貼剛剛你你復制的那串東西
  11. 點擊 Add SSH key
  12. 回到 Git Bash
  13. 運行 ssh -T git@github.com,你可能會看到這樣的提示:
The authenticity of host 'github.com(192.30.255.113)' can't be established. 
RSA key fingerprint is SHA256:nThbg6kXUpJWG17E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting(yes/no)?

輸入 yes 回車……問你話你就答,別傻在那

  1. 然后如果你看到 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 有三種方式,請按照你的需求選擇

  1. 只在本地使用
  2. 將本地倉庫上傳到 GitHub
  3. 下載 GitHub 上的倉庫

1 只在本地使用

1.1 初始化

  1. 創(chuàng)建目錄作為我們的項目目錄:mkdir git-demo-1

  2. 進入目錄 cd git-demo-1

  3. git init,這句命令會在 git-demo-1 里創(chuàng)建一個 .git 目錄

  4. ls -la 你就會看到 .git 目錄,它就是一個「倉庫」,不要進去看,這倉庫里面有毒,別進去!

  5. 在 git-demo-1 目錄里面添加任意文件,假設我們添加了兩個文件,分別是 index.html 和 css/style.css

    1. touch index.html
    2. mkdir css
    3. touch css/style.css
  6. 運行 git status -sb 可以看到文件前面有 ?? 號

     ## Initial commit on master
     ?? css/
     ?? index.html
    
    

    這個 ?? 表示 git 一臉懵逼,不知道你要怎么對待這些變動。

  7. 使用 git add 將文件添加到「暫存區(qū)」

    1. 你可以一個一個地 add
      1. git add index.html
      2. git add css/style.css
    2. 你也可以一次性 add
      1. git add . 意思是把當前目錄(.表示當前目錄)里面的變動都加到「暫存區(qū)」
  8. 再次運行 git status -sb,可以看到 ?? 變成了 A

     ## Initial commit on master
     A  css/style.css
     A  index.html
    
    

    A 的意思就是添加,也就是說你告訴 git,這些文件我要加到倉庫里

  9. 使用 git commit -m "信息" 將你 add 過的內(nèi)容「正式提交」到本地倉庫(.git就是本地倉庫),并添加一些注釋信息,方便日后查閱

    1. 你可以一個一個地 commit
      1. git commit index.html -m '添加index.html'
      2. git commit css/style.css -m "添加 css/style.css"
    2. 你也可以一次性 commit
      1. git commit . -m "添加了幾個文件"
  10. 再再次運行 git status -sb,發(fā)現(xiàn)沒有文件變動了,這是因為文件的變動已經(jīng)記錄在倉庫里了。

  11. 這時你使用 git log 就可以看到歷史上的變動:

```
 commit f0d95058cd32a332b98967f6c0a701c64a00810a
 Author: frankfang <frankfang1990@gmail.com>
 Date:   Thu Sep 28 22:30:43 2017 +0800

     添加幾個文件

```
  1. 以上就是 git add / git commit 的一次完整過程,可以看到,挺復雜的。原則上,你錯了任何一步,就給我從頭來一遍,做到你不會再手抖為止。

1.2 文件變動

如果我想繼續(xù)改文件,應該怎么做呢?

  1. start css/style.css 會使用默認的編輯器打開 css/style.css(macOS 上對應的命令是 open css/style.css

  2. 然后我們在 css/style.css 里寫入 body {background: red},保存退出

  3. 運行 git status -sb 發(fā)現(xiàn)提示中有一個 M

     ## master
     M css/style.css
    
    

    這個 M 的意思就是 Modified,表示這個文件被修改了

  4. 此時你如果想讓改動保存到倉庫里,你需要先 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 本地倉庫里。

  5. 再次運行 git status -sb 發(fā)現(xiàn) M 有紅色變成了綠色,紅色和綠色有啥區(qū)別呢?別管它們的區(qū)別,記住我說的,先 add,再 commit,等你熟練之后再去理解區(qū)別。
    先形成肌肉記憶,在去形成大腦記憶!

  6. 運行 git commit -m "更新 css/style.css",這個改動就被提交到 .git 本地倉庫了。再說一次,不要去 .git 目錄里面,那里的東西你一無所知。

  7. 再再次運行 git status -sb,會發(fā)現(xiàn)沒有變更了,這說明所有變動都被本地倉庫記錄在案了。
    這里來透露一下 git status -sb 是什么意思:git status 是用來顯示當前的文件狀態(tài)的,哪個文件變動了,方便你進行 git add 操作。-sb 選項的意思就是,SB都能看懂,哈,這是開玩笑,-s 的意思是顯示總結(jié)(summary),-b 的意思是顯示分支(branch),所以 -sb 的意思是顯示總結(jié)和分支。

1.3 總結(jié)

至此,我們來總結(jié)一下用到的命令

  1. git init,初始化本地倉庫 .git
  2. git status -sb,顯示當前所有文件的狀態(tài)
  3. git add 文件路徑,用來將變動加到暫存區(qū)
  4. git commit -m "信息",用來正式提交變動,提交至 .git 倉庫
  5. 如果有新的變動,我們只需要依次執(zhí)行 git add xxx 和 git commit -m 'xxx' 兩個命令即可。別看本教程廢話那么多,其實就這一句有用!先 add 再 commit,行了,你學會 git 了。
  6. git log 查看變更歷史

2 將本地倉庫上傳到 GitHub

如何將我們這個 git-demo-1 上傳到 GitHub 呢?

  1. 在 GitHub 上新建一個空倉庫,名稱隨意,一般可以跟本地目錄名一致,也叫做 git-demo-1除了倉庫名,其他的什么都別改,其他的什么都別改,其他的什么都別改,其他的什么都別改,這樣你才能創(chuàng)建一個空倉庫
  2. 點擊創(chuàng)建按鈕之后,GitHub 就會把后續(xù)的操作全告訴你
  3. 點擊 SSH 按鈕,點擊 SSH 按鈕,點擊 SSH 按鈕,我想你現(xiàn)在肯定不會忘了點擊 SSH 按鈕了吧~~~~如果不點擊這個按鈕,你就會使用默認的 HTTPS 地址。但是千萬不要使用 HTTPS 地址,因為 HTTPS 地址使用起來特別麻煩,每次都要輸入密碼,而 SSH 不用輸入用戶名密碼。
    為什么 SSH 不用密碼呢,因為你已經(jīng)上傳了 SSH public key。還記得嗎?如果不記得,翻到本文第一部分「配置 GitHub」章節(jié)。
  4. 由于我們已經(jīng)有本地倉庫了,所以看圖,圖中下面半部分就是你需要的命令,我們一行一行拷貝過來執(zhí)行
    1. 找到圖中的「…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 開頭的。
    2. 再次點擊 SSH 按鈕,不管我強調(diào)多少遍,總會有人忘記點擊 SSH 按鈕,為什么呢?我也不知道,為了防止你忘了點擊 SSH 按鈕,我最后再說一遍,「點擊 SSH按鈕」,點擊之后,整個世界就會變得美好起來。
    3. 得到新的命令 git remote add origin git@github.com:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/git-demo-1.git,復制并運行它
    4. 復制第二行 git push -u origin master,運行它
    5. 刷新當前頁面,你的倉庫就上傳到 GitHub 了!是不是特別簡單?只要你按照我說的做,一絲不茍,即可。

3 直接在 GitHub 創(chuàng)建一個倉庫,然后下載到本地

上面兩步講了

  1. 在本地創(chuàng)建倉庫
  2. 將本地倉庫上傳到 GitHub

這里將第三種用法,那就是直接在 GitHub 創(chuàng)建一個倉庫,然后下載到本地。

  1. 在GitHub 上新建一個倉庫 git-demo-2,這次就不創(chuàng)建空倉庫了,而是自帶 README 和 Lisence 的倉庫。
  2. 這樣一來,這個倉庫就會自動擁有三個文件:
.gitignore
LICENSE
README.md
  1. 這三個文件的作用請自行了解:.gitignore 的作用README.md 的作用 以及 LISENCE 的作用
  2. 好了,現(xiàn)在遠程倉庫已經(jīng)創(chuàng)建好了,怎么下載到我們的本地(也就是我們的電腦上)呢?答案是使用 git clone 命令
  3. 點擊頁面中唯一的綠色按鈕「clone or download」,會看到一個彈出層
  4. 請確保彈出層里的地址是 SSH 地址,也就是 git@github.com 開頭的地址,如果不是,就點擊 Use SSH 按鈕,就點擊 Use SSH 按鈕,就點擊 Use SSH 按鈕。然后復制這個地址。
  5. 打開 Git Bash,找一個安全的目錄,比如 ~/Desktop 桌面目錄就很安全:cd ~/Desktop。運行。
  6. 運行 git clone 你剛才得到的以git@github.com開頭的地址,運行完了你就會發(fā)現(xiàn),桌面上多出一個 git-demo-2 目錄。我再說一遍,桌面上多出一個 git-demo-2 目錄。我再說一遍,桌面上多出一個 git-demo-2 目錄。這個細節(jié)很重要,很多小白發(fā)現(xiàn)不了這個細節(jié),我也不知道他們是眼瞎還是怎么了……
  7. 進入這個多出來的目錄,對的,你肯定會忽略這一步。
  8. 進入這個多出來的目錄,對的,你肯定會忽略這一步。
  9. 進入這個多出來的目錄,對的,你肯定會忽略這一步。
  10. 好了你進入了這個目錄了,如果沒有,我就要吐血了,因為我的提示很明顯。
  11. 運行 ls -la 你會看到,遠程目錄的所有文件都在這里出現(xiàn)了,另外你還看到了 .git 本地倉庫。這是你就可以添加文件,git add,然后 git commit 了。

三種方式都說完了,它們分別是:

  1. 在本地創(chuàng)建倉庫
  2. 將本地倉庫上傳到 GitHub
  3. 下載 GitHub 上的倉庫到本地

其實呢,我還可以說很多種不同的方式,但是,你記住這幾種就行了,夠你用的了。我們并不想要了解 git 的所有高級用法,我們的目的很明確:能通過 Git 命令使用 GitHub 就行。

我們再回顧一遍已經(jīng)學到的命令:(這次只多了一個 git clone 命令)

  1. git clone git@github.com:xxxx,下載倉庫
  2. git init,初始化本地倉庫 .git
  3. git status -sb,顯示當前所有文件的狀態(tài)
  4. git add 文件路徑,用來將變動加到暫存區(qū)
  5. git commit -m "信息",用來正式提交變動,提交至 .git 倉庫
  6. 如果有新的變動,我們只需要依次執(zhí)行 git add xxx 和 git commit -m 'xxx' 兩個命令即可。別看本教程廢話那么多,其實就這一句有用!先 add 再 commit,行了,你學會 git 了。
  7. git log 查看變更歷史

如何上傳更新

你在本地目錄有任何變動,只需按照以下順序就能上傳:

  1. git add 文件路徑
  2. git commit -m "信息"
  3. git pull (相信我,你一定會忘記這一個命令)
  4. git push

下面是例子

  1. cd git-demo-1
  2. touch index2.html
  3. git add index2.html
  4. git commit -m "新建 index2.html"
  5. git pull
  6. 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 反轉(zhuǎn)通靈術
  • git revert 后悔了
  • git reset 另一種后悔了
  • git diff 查看詳細變化

學 git 命令都夠你們學一周的,所以別妄想現(xiàn)在就掌握它,切記。

資源

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容