git由超淺入超深
Post on 17-Jul-2015
579 Views
Preview:
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