git由超淺入超深

Post on 17-Jul-2015

579 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

跟著⽺羊⼩小咩⼀一起爽

Blog : lamb-mei.com

⽺羊⼩小咩 Lamb MeiE-mail : lamb@lamb-mei.com

FB : https://www.facebook.com/lamb.mei

GitHub:https://github.com/lamb-mei/

爽 咩

世人的誤解

我是

圖⽚片來源 http://www.dep.taipei.gov.tw/site/tcg/public/MMO/dep_MMO/0129.jpg

今天的主題

圖⽚片來源 http://newsget-cache.stor.sinaapp.com/19e004423dfc63cc62576f113e68af04.jpg

圖⽚片來源:http://img04.tooopen.com/images/20121024/tooopen_201210241527566827.jpg http://s1.t.itc.cn/mblog/pic/20125_18_9/f_28548972594774707.gif

為什麼要使⽤用 GIT

為什麼要使⽤用 Git分散式

速度快

⼤大神都在⽤用

⼤大家都在⽤用

不⽤用很落伍

公司強迫我要⽤用

開分⽀支(branch)很容易

⼤大部份操作本地端可完成

不需中央伺服器版本庫毀損的⾵風險較低

超潮der

對沒⽤用過的⼈人來說

圖⽚片來源 http://s279.photobucket.com/user/sherlock1031/media/Dectective%20Dissicusion%20Group/Galileo106.jpg.html

對沒⽤用過的⼈人來說

圖⽚片來源 http://s279.photobucket.com/user/sherlock1031/media/Dectective%20Dissicusion%20Group/Galileo106.jpg.html

對只會 commit / push / pull 的⼈人也是

/ 20512

使⽤用 GIT 要解決的事情

/ 20513

使⽤用 GIT 要解決的事情

/ 20514

使⽤用 GIT 要解決的事情

檔案可能還好處理但若分別是資料夾呢?

/ 20515

使⽤用 GIT 要解決的事情

圖⽚片來源 http://backlogtool.com/git-guide/tw/img/post/intro/capture_intro1_1_2.png

/ 20516

使⽤用 GIT 要解決的事情

其實還有很多...圖⽚片來源 http://backlogtool.com/git-guide/tw/img/post/intro/capture_intro1_1_2.png

/ 20517

圖⽚片來源 https://lh4.googleusercontent.com/-vvzM1j0tqGA/UPffE081MHI/AAAAAAAAQ5c/C6oSHikiCdY/s990/P1130764.jpg

最後只要知道 GIT 是

/ 20518

GIT Software

/ 205

Windows 必裝軟體19

http://msysgit.github.io/

msysgit

http://git-scm.com/downloads/win

git-scm

/ 205

Mac 必裝軟體20

$ yum install curl-devel expat-devel gettext-devel \ openssl-devel zlib-devel

$ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \ libz-dev libssl-dev

git-scm

⼿手動安裝

/ 20521

若你是Coding 魔⼈人 千萬不能裝 GUI 軟體

圖⽚片來源 http://screen-wallpapers.com/wallpapers/4743/bigpreview_Coding.jpg

/ 20522

圖⽚片來源 http://screen-wallpapers.com/wallpapers/4743/bigpreview_Coding.jpg

⼀一定要⽤用 terminal 不然不夠帥

/ 20523

圖⽚片來源 http://ext.pimg.tw/yayachen0326/4ab33c5f3fe73.jpg

若你是...

/ 205

Git GUI 軟體24

windows onlyhttps://code.google.com/p/tortoisegit/

/ 205

Git GUI 軟體25

windows / OS Xhttp://www.sourcetreeapp.com/

/ 20526

GIT 這個玩意

/ 20527

基本觀念⾮非常重要!

協同作業 必須⼤大家都要有相同的觀念

/ 20528

腦部神經聯結⽰示意圖

協同作業,必須⼤大家都要有相同的觀念

圖⽚片來源 http://www.naipo.com/Portals/1/web_tw/images/pic089-01-a01.jpg

儲存庫 ( Repository )

/ 20530

圖⽚片來源:http://backlogtool.com/git-guide/tw/img/post/intro/capture_intro1_2_1.png

儲存庫哪來的• 本地的儲存庫 (local repository)

/ 20531

圖⽚片來源:http://backlogtool.com/git-guide/tw/img/post/intro/capture_intro1_2_2.png

儲存庫哪來的• 遠端的儲存庫 (remote repository)

GitHub 或其他平台建⽴立的 repo

儲存庫 ( Repository )

git init

git init --bare

git clone <REPOSITORY_URI>

/ 20533

git init --bare Server ⽤用儲存庫資料夾 命名規則

<資料夾名稱>.git

https://github.com/github/gitignore.git

儲存庫 ( Repository )

Git 常⽤用指令

/ 20535

Git 常⽤用指令

git add新增檔案

git add .git add <file path>

git add *.jsgit add docs/*

/ 20536

Git 常⽤用指令

git status查詢狀態

git status -sgit status -b

/ 20537

Git 常⽤用指令

git commit

提交變更 / 建⽴立版本

git commit -m ‘訊息⽂文字‘

/ 20538

Git 常⽤用指令

git log

查詢版本

git log -2

/ 20539

Git 常⽤用指令對很多⼈人來說從這開始 就不是常⽤用指令了

/ 20540

Git 常⽤用指令

git rm

刪除檔案

git rm 1.txt

1. 刪除版本庫索引的 ‘1.txt' 這個檔案 2. 刪除⼯工作⺫⽬目錄下的 '1.txt' 這個實體檔案

/ 20541

Git 常⽤用指令

git mv

更換檔案

git mv 1.txt A.txt

/ 20542

Git 常⽤用指令

git reset

重設⼯工作⺫⽬目錄/索引狀態

git reset --hard

只有重設索引

還原索引跟⼯工作⺫⽬目錄

注意 reset 是針對全部⼯工作區(這只是為了好記,有別種reset ⽤用法)

/ 20543

Git 常⽤用指令

git checkout master -- 1.txt

取出指定的 <物件>

git checkout master 1.txt

e.g 還原其中⼀一個被改壞的檔案

git checkout

儲存庫 ? ⼯工作⺫⽬目錄?索引?

⼯工作⺫⽬目錄

/ 20545

儲存庫(repo)

儲存庫 ? ⼯工作⺫⽬目錄?索引?

/ 20546

索引

儲存庫 ? ⼯工作⺫⽬目錄?索引?

/ 20547

圖⽚片來源:http://backlogtool.com/git-guide/tw/img/post/intro/capture_intro1_4_1.png

儲存庫 ? ⼯工作⺫⽬目錄?索引?

Git 原理/結構

圖⽚片來源 :http://himg2.huanqiu.com/saronscms/uploadfile/2014/0403/20140403050245784.jpg

跟⼤大藍洞⼀一樣深 XD

Git 原理/結構

/ 20549

Git 物件類型

blob 物件 tree 物件

commit 物件 tag 物件

所有的物件都會以 zlib 演算法進⾏行壓縮

/ 20550

Git 物件類型blob 物件

某個檔案的 "內容",且只有內容⽽而已,當你執⾏行 git add 指令的同時,這些新增檔案的內容就會⽴立刻被寫⼊入成為 blob 物件,檔名則是物件內容的雜湊運算結果,沒有任何其他其他資訊,像是檔案時間、原本的檔名或檔案的其他資訊,都會儲存在其他類型的物件裡 (也就是 tree 物件)

/ 20551

Git 物件類型tree 物件

儲存特定⺫⽬目錄下的所有資訊,包含該⺫⽬目錄下的檔名、對應的 blob 物件名稱、檔案連結(symbolic link) 或其他 tree 物件等等。由於 tree 物件可以包含其他 tree 物件,所以tree 物件其實就跟「資料夾」沒兩樣。簡單來說,tree 物件這就是在特

定版本下某個資料夾的快照(Snapshot)

/ 20552

Git 物件類型commit 物件

⽤用來記錄有那些 tree 物件包含在版本中,⼀一個 commit 物件代表著 Git 的⼀一次提交,記錄著特定提交版本有哪些 tree 物件、以及版本提交的時間、紀錄訊息等等,通常還會記錄上⼀一層的

commit 物件名稱 (只有第⼀一次 commit 的版本沒有上層 commit 物件名稱

/ 20553

Git 物件關聯

圖⽚片來源 :http://journal.code4lib.org/media/issue21/anderson/images/large/fig-09-git-revisions.png

/ 20554

Git 物件命名規則每⼀一個「物件」,都是以「檔案內容」進⾏行 SHA1 雜湊運算出⼀一個 hash 值,並⽤用這個 hash 值當作物件的名稱 (檔名)。

Git 會先拿前兩個字元(97)當作⺫⽬目錄 然後把剩下的 hash 值當成檔名 (3749075c53236cfc411f62918efc3ce3a31380) 這些物件的實體⺫⽬目錄與檔案也都會放在 .git\objects ⺫⽬目錄下

/ 20555

查詢 Hash 編碼git hash-object

$git hash-object 1.txt d00491fd7e5bb6fa28c517a0bb32b8b506539d4d

/ 20556

查詢 Git 物件git cat-file -p

/ 20557

查詢 Git 物件git cat-file -p

/ 20558

查詢 Git 物件git cat-file -p

/ 20559

Git 物件關聯

圖⽚片來源 :http://git-scm.com/figures/18333fig0301-tn.png

/ 20560

Git 物件關聯

圖⽚片來源 : http://git-scm.com/figures/18333fig0302-tn.png

/ 20561

Git 物件關聯

圖⽚片來源 :http://git-scm.com/figures/18333fig0303-tn.png

/ 20562

Git 物件關聯

圖⽚片來源 :http://git-scm.com/figures/18333fig0304-tn.png

/ 20563

Git 物件關聯

圖⽚片來源 :http://git-scm.com/figures/18333fig0305-tn.png

HEAD 是⼀一直保持著最新版本的指標

/ 20564

Git 物件關聯

圖⽚片來源 :http://git-scm.com/figures/18333fig0306-tn.png

切換到 Testing 分⽀支的狀態

/ 20565

Git 物件關聯

圖⽚片來源 :http://git-scm.com/figures/18333fig0307-tn.png

/ 20566

Git 物件關聯

圖⽚片來源 :http://git-scm.com/figures/18333fig0309-tn.png

圖⽚片來源 http://ecx.images-amazon.com/images/I/51oxTnCqCbL._SY300_.jpg http://backlogtool.com/git-guide/tw/img/post/stepup/capture_stepup1_1_1.png

分⽀支 (branch)

/ 20568

分⽀支 (branch)

git branch <branch name>建⽴立分⽀支

/ 20569

分⽀支 (branch)

git checkout <branch name>切換分⽀支

/ 20570

Git 差異⽐比對

git diff git diff         => ⼯工作⺫⽬目錄 vs 索引 git diff HEAD      => ⼯工作⺫⽬目錄 vs HEAD git diff --cached HEAD => 索引 vs HEAD

git diff HEAD^ HEAD  => HEAD^ vs HEAD

/ 20571

Git 物件的參照名稱

參照名稱 (ref) 簡單來說就是 Git 物件的⼀一個「指標」

是相對於「絕對名稱」的另⼀一個「好記名稱」 ⽤用⼀一個預先定義或⾃自⾏行定義的名稱來代表某⼀一個 Git 物件。

HEAD (代表最新版本) 分⽀支標籤名稱 這些都是「參照名稱」

/ 20572

在⼤大多數的情況下,「參照名稱」通常都會指向⼀一個 commit 物件,但並⾮非必要,你也可以指向其他 Git 物件類型,像是 blob 物件、tree 物件、tag 物件等等

Git 物件的參照名稱

/ 20573

.git/refs/ ⺫⽬目錄

• 本地分⽀支: .git/refs/heads/

• 遠端分⽀支: .git/refs/remotes/

• 標  籤: .git/refs/tags/

/ 20574

* HEAD永遠會指向「⼯工作⺫⽬目錄」中所設定的「分⽀支」當中的「最新版」。

* ORIG_HEAD就是 HEAD 這個 commit 物件的「前⼀一版」,經常⽤用來復原上⼀一次的版本變更。

* FETCH_HEAD使⽤用遠端儲存庫時,可能會使⽤用 git fetch 指令取回所有遠端儲存庫的物件。這個 FETCH_HEAD 符號參考則會記錄遠端儲存庫中每個分⽀支的 HEAD (最新版) 的「絕對名稱」。

* MERGE_HEAD當你執⾏行合併⼯工作時 (關於合併的議題會在⽇日後的⽂文章中會提到),「合併來源」的 commit 物件絕對名稱會被記錄在 MERGE_HEAD 這個符號參照中。

符號參照名稱 (symref)符號參照名稱 (symref) 其實也是參照名稱 (ref) 的⼀一種,只是內容不同⽽而已。我們從下圖應可看出其內容的差異,「符號參照」會指向另⼀一個「參照名稱」

並且內容以 ref: 開頭

/ 20575

Git 參照名稱⼜又有區分「⼀一般參照」與「符號參照」,兩者的⽤用途⼀一模⼀一樣,只在於內容不太⼀一樣。 「符號參照」會指向另⼀一個「⼀一般參照」 「⼀一般參照」則是指向⼀一個 Git 物件的「絕對名稱」。

「參照名稱(ref)」 簡單來說就是 Git 物件的⼀一個「指標」,⽤用來指向特定 Git 物件,所以你可以把「參照名稱」想像成 Git 物件絕對名稱的別名 (Alias),⽤用來幫助記憶。在 Git 裡,有許多機制可以幫你控管專案,例如「分⽀支」、「標籤」等等,這些機制⾻骨

⼦子裡其實就是靠「參照」完成的。

參照⼩小節

圖⽚片來源 : http://i.imgur.com/LRC1M.jpg http://blog-imgs-43-origin.fc2.com/m/o/l/mollymolly1/100331-5ds.jpg

http://static.ettoday.net/images/576/d576654.jpg http://link.photo.pchome.com.tw/s13/js86/4/132991104143/

http://pic.pimg.tw/sandykill/4aab6e5adf5d7.gif

圖⽚片來源 :http://www.fangdigital.com/wp-content/uploads/2013/04/tags.jpg

Git 標籤 (tag)

• 輕量標籤 (lightweight tag)

• 標⽰示標籤 (annotated tag)

/ 20578

Git 標籤 (tag)

• 輕量標籤 (lightweight tag)

• 標⽰示標籤 (annotated tag)

這種「標籤」才是 Git 儲存庫中「永久的物件」

/ 20579

Git 暫存(stash)

• git stash

會將所有已列⼊入追蹤(tracked)的檔案建⽴立暫存版

• git stash -u會包括所有已追蹤或未追蹤的檔案,全部都建⽴立成暫存版

圖⽚片來源:http://bbs.mychat.to/attach/Fid_175/175_837026.jpg

追蹤變更軌跡

git reflog

/ 20581

追蹤變更軌跡 (儲存位置).git/logs/

/ 20582

追蹤變更軌跡 (查詢後復原)

git reflog

HEAD@{0},永遠代表⺫⽬目前分⽀支的「最新版」

/ 20583

git reset HEAD@{1} --hard

追蹤變更軌跡 (查詢後復原)

git reflog

「取消」最近⼀一次的版本紀錄

HEAD@{0},永遠代表⺫⽬目前分⽀支的「最新版」

/ 20584

追蹤變更軌跡(記錄時機)

* commit * checkout * pull * push * merge * reset * clone * branch * rebase * stash

Git 忽略清單.gitignore

/ 20586

Git 忽略清單 .gitignore

Git 合併觀念git merge

/ 20588

Git 合併觀念 (merge)

/ 20589

Git 合併觀念 (merge)

fast-forward(快轉)合併

/ 20590

Git 合併觀念 (merge)

/ 20591

Git 合併觀念 (merge)

合併會多⼀一個 commit

/ 20592

圖⽚片來源 :http://git-scm.com/figures/18333fig0310-tn.png

Git 合併 (merge)

/ 20593

Git 合併 (merge)

圖⽚片來源 :http://git-scm.com/figures/18333fig0311-tn.png

/ 20594

Git 合併 (merge)

圖⽚片來源 :http://git-scm.com/figures/18333fig0311-tn.png

/ 20595

Git 合併 (merge)

圖⽚片來源 :http://git-scm.com/figures/18333fig0313-tn.png

/ 20596

Git 合併 (merge)

圖⽚片來源 :http://git-scm.com/figures/18333fig0314-tn.png

/ 20597

Git 合併 (merge)

圖⽚片來源 :http://git-scm.com/figures/18333fig0315-tn.png

/ 20598

Git 合併 (merge)

圖⽚片來源 :http://git-scm.com/figures/18333fig0316-tn.png

/ 20599

Git 合併 (merge)

圖⽚片來源 :http://git-scm.com/figures/18333fig0316-tn.png

/ 205100

Git 合併觀念 (merge)

1. 合併之前,先看清楚⾃自⼰己在哪個分⽀支 2. 合併之前,請確保⼯工作⺫⽬目錄是乾淨的 3. 合併時請⽤用 git merge [另⼀一個分⽀支] 來將另⼀一個分⽀支的變更合併回來 4. 合併成功後,確認沒有問題!

/ 205101

Git 合併衝突 (merge)

/ 205102

Git 合併衝突 (merge)

⽤用壞了怎麼辦

/ 205103

Git 合併衝突 (merge)

⽤用壞了怎麼辦

git reset HEAD@{1} --hard

還原就好了

/ 205104

Git 合併衝突 (merge)

⽤用壞了怎麼辦

git reset --hard ORIG_HEAD

這樣也可以!

Git 合併git rebase

/ 205106

Git 合併git rebase

/ 205107

Git 合併

git rebase

/ 205108

Git 合併從 bugfix “rebase” 到 master

/ 205109

Git 合併 rebase

圖⽚片來源 :http://git-scm.com/figures/18333fig0331-tn.png

所以在 client 分⽀支下命令git rebase master (會變成下圖

若在 mastergit rebase client (會變成下圖

這張圖是

git rebase --onto master server client

git rebase --onto master server client

“取出 client 分⽀支,找出 client 分⽀支和 server 分⽀支的共同祖先之後的變化,然後把它們在 master 上重演⼀一遍”。

(譯注:雖然 client 裡的 C8, C9 在 C3 之後,但這僅表明時間上的先後,⽽而⾮非在 C3 修改的基礎上進⼀一步改動,因為 server 和 client 這兩個分⽀支對應的代碼應該是兩套檔,雖然這麼說不是很嚴格,但應理解為在 C3 時間

點之後,對另外的檔所做的 C8,C9 修改,放到主幹重演。)

git rebase --onto master server client

這需要⽤用 command 才弄得出來,所以做個了解就好

我也很少⽤用 onto 這個命令

/ 205116

Git 合併 rebase

圖⽚片來源 :http://git-scm.com/figures/18333fig0333-tn.png

/ 205117

Git 合併 rebase

圖⽚片來源 :http://git-scm.com/figures/18333fig0334-tn.png

/ 205118

現在你想法⼀一定是

/ 205119

圖⽚片來源 :http://mypaper.pchome.com.tw/show/article/kkk670670/A1276118288

Git 修改 commit

/ 205121

⼈人⾮非聖賢,孰能無過

/ 205122

Git 修改 commit

git commit --amend

/ 205123

Git 修改 commit (amend)

漏掉應該要⼀一起commit 檔案

/ 205124

糟糕我寫錯mesage

Git 修改 commit (amend)

/ 205125

Git 重置 commit

git reset

/ 205126

Git 重置 commit

git reset --hard "HEAD^"刪除最後的版本

/ 205127

Git 重置 commit

git reset --hard ORIG_HEAD復原上次的動作

/ 205128

Git 重置 commit

git reset --soft "HEAD^"刪除最後的版本,但留下修改內容

/ 205129

Git 重置 commit

git reset --soft "HEAD^"

git reset --mixed "HEAD^"git reset "HEAD^"

/ 205130

Git 重置 commit

git reset --soft "HEAD^"

git reset --mixed "HEAD^"git reset "HEAD^"

檔案會是 stage狀態

/ 205131

Git 重置 commit

git reset --soft "HEAD^"

git reset --mixed "HEAD^"git reset "HEAD^"

檔案會是 unstage狀態

/ 205132

Git 還原 commit

git revert [commit_id]

/ 205133

Git 還原 commit

git revert [commit_id]

注意:索引必須乾淨狀態

/ 205134

Git 修改 commit

git cherry-pick

圖⽚片來源 : https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcTSkS0N71OS1U4LRv9xx79ek2-rHXowkqWKvDt65_h-oWsP4chNzg

/ 205135

Git 修改 commitgit cherry-pick

圖⽚片來源 : https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcTSkS0N71OS1U4LRv9xx79ek2-rHXowkqWKvDt65_h-oWsP4chNzg

/ 205136

Git 修改 commitgit cherry-pick

/ 205137

Git 修改 commit

git rebase -i乾坤⼤大挪移

圖⽚片來源 :http://www.wzrlmy.com/A//upload/product//NewWebPic/BigPic/201005281209289062.jpg

/ 205138

Git 修改 commit

git rebase -i乾坤⼤大挪移

注意:索引必須乾淨狀態

/ 205139

Git 修改 commit (rebase)

你可以...

/ 205140

Git 修改 commit (rebase)

1. 調換 commit 的順序

/ 205141

Git 修改 commit (rebase)

1. 調換 commit 的順序 2. 修改 commit 的訊息

/ 205142

Git 修改 commit (rebase)

1. 調換 commit 的順序 2. 修改 commit 的訊息 3. 插⼊入⼀一個 commit

/ 205143

Git 修改 commit (rebase)

1. 調換 commit 的順序 2. 修改 commit 的訊息 3. 插⼊入⼀一個 commit 4. 編輯⼀一個 commit

/ 205144

Git 修改 commit (rebase)

1. 調換 commit 的順序 2. 修改 commit 的訊息 3. 插⼊入⼀一個 commit 4. 編輯⼀一個 commit 5. 拆解⼀一個 commit

/ 205145

Git 修改 commit (rebase)

1. 調換 commit 的順序 2. 修改 commit 的訊息 3. 插⼊入⼀一個 commit 4. 編輯⼀一個 commit 5. 拆解⼀一個 commit 6. 壓縮⼀一個 commit,且保留訊息紀錄

/ 205146

Git 修改 commit (rebase)

1. 調換 commit 的順序 2. 修改 commit 的訊息 3. 插⼊入⼀一個 commit 4. 編輯⼀一個 commit 5. 拆解⼀一個 commit 6. 壓縮⼀一個 commit,且保留訊息紀錄 7. 壓縮⼀一個 commit,但丟棄版本紀錄

/ 205147

Git 修改 commit (rebase)

1. 調換 commit 的順序 2. 修改 commit 的訊息 3. 插⼊入⼀一個 commit 4. 編輯⼀一個 commit 5. 拆解⼀一個 commit 6. 壓縮⼀一個 commit,且保留訊息紀錄 7. 壓縮⼀一個 commit,但丟棄版本紀錄 8. 刪除⼀一個 commit

Git 遠端版本庫

/ 205149

Git 遠端版本庫

傳輸⽅方式

http:// https://git://ssh://

/ 205150

Git 遠端版本庫

git push

/ 205151

Git 遠端版本庫

git pull

git fetch

/ 205152

Git 遠端版本庫

git pull

git fetch

fetch

merge+

/ 205153

來⾃自github的Scott Chacon OSDC Git Session

來源 http://contribgit.herokuapp.com/#1

/ 205154

/ 205155

/ 205156

/ 205157

/ 205158

/ 205159

/ 205160

/ 205161

/ 205162

/ 205163

/ 205164

/ 205165

/ 205166

/ 205167

/ 205168

/ 205169

/ 205170

/ 205171

/ 205172

/ 205173

/ 205174

/ 205175

/ 205176

/ 205177

/ 205178

/ 205179

/ 205180

/ 205181

/ 205182

/ 205183

/ 205184

/ 205185

Git 遠端觀念

/ 205187

push 了就回不去了

圖⽚片來源:http://cdn0.t17.techbang.com.tw/system/attached_images/2012/12/76729/show/feba4c111f349866c5e087de04526d98.jpg?1355366400

Git 遠端觀念

/ 205188

push 後的commit 不能...

Git 遠端觀念

/ 205189

push 後的commit 不能...

Git 遠端觀念

resetrebaseament

/ 205190

push 後的commit 只能...

Git 遠端觀念

revert

/ 205191

Git 掛勾 (Hook)

Git flow

/ 205193

Git flow

/ 205194

Git flow

git flow feature start feature_xxxxx (以此類推 git flow release 和 git flow hotfix)

git flow feature finish feature_xxxxx

其他的....

/ 205196

Blame

subtree

submodules

bisect

/ 205197

下次有空再說....

圖⽚片來源 :http://pic.pimg.tw/austinleefuture/1407855278-2999893000.jpg

最後

最後最後

最後最後最後

很重要,所以說三次

學然後知不⾜足,教然後知困,教學相⻑⾧長

圖⽚片來源 :http://www.worldofmastermind.com/wp-content/uploads/2013/10/Confucious-2a.jpg

/ 205203

學然後知不⾜足,教然後知困。 知不⾜足,然後能⾃自反也知困,然後⾃自強也 故⽈曰,教學相⻑⾧長也

• “⾃自反”,意思是反過來要求⾃自⼰己。 • “困”,不通,理解不清。 • “⾃自強”,意思是⾃自⼰己努⼒力。“強”,竭⼒力,盡⼒力。 • “教學相⻑⾧長”,意思是教和學互相促進,教別⼈人,也能增⻑⾧長⾃自⼰己的學問

學習才能知道⾃自⼰己知識的缺乏教了別⼈人之後才能知道⾃自⼰己對知識還理解不清。認識到了⾃自⼰己知識的不⾜足,然後才能反過來要求⾃自⼰己;知道了⾃自⼰己對有些知識還理解不通,然後才能⾃自⼰己努⼒力。

參考⽂文獻• The Will Will Web 保哥 Git 教學

• iHower Git 版本控制系統

• 猴⼦子都能懂的 Git 指南

• Git官⽅方教學

• Casear Chu Git 教學

• Scott Chacon Git Session on OSDC

Q & A

羊小咩 2015 / 01 / 29

Thank  you  !

top related