這是一份寫給 Git 新手的入門簡報。相信藉由 SourceTree 這套圖形化的版本控制工具,可降低不少入門時的門壏。 * Blog - http://note.drx.tw/2015/05/git-and-github-basic-with-sourcetree.html
[ [email protected] ~ ] $ cat .profile# Author: 㲺Ռᗼ / chusiang.lai (at) gmail.com# Blog: http://note.drx.tw# Modified: 2015-04-29 17:50GitHub&Bacis with SourceTree1
View Slide
橕ෝ㲺Ռᗼ• 5 ଙ犥Ӥጱ Git ֵአ妿涢牐• 獮 Foxconn 敟誢ૡ纷䒍牐• 匍肬 DrSays IT ૡ纷䒍牐• ፘ橕֢ߝ茐֢物• LifeZMD• @be_vimmer_tw• ̽ਠ獊አ GNU/Linux ૡ֢̾• 㲺Ռጱ執懿2
伛猋অӞ矐绗ᒌ㻟牫樄ত㾏牦3
OutlineI. Git ฎՋ讕?II. GitHub ݈ฎՋ讕?III. Git & GitHub ݢ犥ெ讕ሻ?IV. 10 ౮傶 Git य़䒍牐V. GitHub 褰璤介涢牐4
Ⅰ. Git ฎՋ讕?5
–WikipediaGit ฎӞ㮆獤碂ୗ粚矒ګ敟誢牧磧ڡኧ羳ේ牨箓絮艌 (Linus Torvalds) 獺֢牧ෝ 2005 ଙ犥 GPL朰ڊ牐磧ڡฎ傶ԧๅ磪硳ሲጱᓕቘ Linux Kernel 樄咳ᘒ戔懯ጱ牐6
Git ฎՋ讕?• SCM (Source Code Management, SoftwareConfiguration Management)• VCS (Version Control Software)• 獤碂ୗጱ粚矒ګ羬翄• ᛔኧ敟誢 (GPL License)7ྭ襑 Server牧ݢ櫝娄ֵአ犋ொᤩ薛䥁牏犋ொ౮傶敟誢疅㱾
䷱磪粚矒ᓕጱӮኴय़疑᮷妿稲螂ጱ̿ಋ䵝̀ଙդ8
9䲆礯䄸粚矒ګ翕᪠臻蟠粚矒ګ• FTP 粚矒ګ• 瓟婘䲆粚矒ګ• Google 襇ᒒᏝ繕粚矒ګ• Dropbox 粚矒ګ• ...
ᮎ֖ሴҨұک皈ฎࣁ䌃Ջ讕ࠡ牦10
磪 SVN ጱӮኴय़疑᮷妿稲螂ጱ̿ಋ䵝̀ଙդ #211
䷱磪翕᪠ฎᥝெ讕䌃 code ࠡ牦牦12
磪 Git ጱӮኴಋ䵝? 粋 code? 猖猖獤ጱ竃༩13
抑? ࣁ֜碻?ᛔ౯硼蝄狶ԧՋ讕?ࣁ Git ጱӮኴ愊眅ݢ犥፡ک …托奞虻懱14
獡蚎螂ኸ綫撪15
–jserv̿Git ฎӞ㮆ݢ犥虏匍ࣁጱᛔ૩牏螂݄ጱᛔ૩๚㬵ጱᛔ૩وݶ樄咳ጱ粚矒ګ羬翄牐̀16
Git 10 蝰ଙ牧Linux ԏᆿ藳犢ฎெ讕ࣁ 10 ॠ獉樄咳ਠ౮禼ࣁ娄 - http://goo.gl/zvavk317
Ⅱ. GitHub ݈ฎՋ讕?18
–chusiangGitHub ฎӞ㮆׀珿ጱ Git դᓕ牏Issue tracking ... 缛ጱ纷ୗ嘨ᐒԻଘݣ牐19
GitHub ਥො翕ᒊhttps://github.com/20
Git Web21
git diff22
Issue Tracking23
Wiki24
Follwers25
Ⅲ. Git GitHub ݢ犥ெ讕ሻ?26
ग़Ո㶧ݶ樄咳• LifeZMD 傶 Charlie, Chu, Dick,Olga, Steven, chusiang ෝ iDSBGᒫӣ䌵 HTML5 Hackathon ಅ蕣֢牐• 穉搴౮婧物ᒫ 4 ݷ牐• 穉搴碻樌物2 ॠ 1 ज़牐• 㿁褧Ո碍物6 Ո牐LifeZMD - http://goo.gl/OHJK9u27
覌眲翕ᒊSM ฎ㮆ֵአ GitHub Pages ๐率ጱ HTML, CSS Javascript ಅ䌃౮ጱय़ਁ䁭 Web Apps牐SM - http://sm.drx.tw28
蝑 Patch憽獨Ոጱ䌕礯犋䄪ਠ聅牫ᮎ疰ض fork 獨Ոጱ䌕礯牧硬ਠ code ٚ蝑 Pull Requests 㹧牦@be_vimmer_tw - http://goo.gl/TVYHsL29
䌃䨗• 萞ኧ GitHub GitBook ๐率ጱ碉ݳ牧౯㮉ݢ犥ֵአ Markdown 承ဩ砰䌃ᒍ牧㪔碉ቘ౮㲘牐• GitBook ݶ碻ඪൔ Web, PDF, ePub mobi 缛ग़圵໒ୗ牐ਠ獊አ GNU/Linux ૡ֢ - http://goo.gl/OHJK9u30
瞱媲碉ݳ (CI)砇蟴䔶य़ጱ Jenkins CI牧ܨݢ蝱ᤈ ᛔ㵕玕介手 (Web UI, Unit test)牏 翥捌 (AOSP)牏蝢Ꭳ懱௳ (Email,HipChat, Slack) ... 缛碉ݳ牐Jenkins CI - https://ci.jenkins-ci.org/31
–chusiang̿磪ԧ Git 疰অ穉䌃纷ୗݢ犥蚤ሻ㻌秚蝿瞁Ӟ䰬牧ݢ犥褰碻㱪ਂ捝玲蝱ଶ牧犋ᓕฎᥝ盠蝧Ꮘ橕螭ฎᥝ誢涢ݱ㮆獤ඪ玀眐᮷ݢ犥斕誫ጱ旰ک牐̀32
Ⅳ. 10 ౮傶 Git य़䒍33
ࣁ樄ত ԏ獮殾伛猋ۑ毆珿ٌԪ牧ضڥٌ瑊ጱTool34
SourceTree Terminalor35
螭磪 ᪒᪡竝ጱID Email36
# 戔ਧֵአᘏݷ圸$ git config --global user.name "foo"# 戔ਧ襎ৼמᓟ$ git config --global user.email "[email protected]"37
ᒫ 1 物蕦蕣 (clone) 膏ڡত玕 (init)మ盠蝧Ӥಋ牫ᮎ疰ضℂಧ樄ত㹧牦38
ٚ clone 獮牧 藶ض fork傶ෝݶྍ犥ӥ砺֢絑ह牧藶ضᛗ GitHub 蝱ᤈ fork牐ૢ棎39
蕦蕣 (clone)舙犋ฎℂᛔ૩ጱ GitHub 蝱ᤈ蕦蕣 (clone)牧毆戔ฎ䷱磪稗褖Ӥ㯽 (push) ጱࡂ牦40
ૢ棎ૢ棎41# 蕦蕣 (clone)$ git clone [email protected]:chusiang/sandbox.git夺ਁ蟂犩藶硬౮ᛔ૩ጱ癱蒈夺ਁ蟂犩藶硬౮ᛔ૩ጱ癱蒈夺ਁ蟂犩藶硬
ڡত玕 (init)ࣁୌ缏Ӟ㮆碝ጱ Git 䌕礯ԏ獮牧౯㮉襑ಋ㵕ୌ缏瑿ᒒጱ碍硁䓚 (Local Repository)牧֕舙磪獮Ո (蝢ଉ䨝ฎ羬翄ᓕቘ㹓) ୌ缏অ牧 fork ٌਙ䌕礯牧蝡碻౯㮉疰ݢ犥ኼ螂牐42
ૢ棎ૢ棎# ୌ缏䌕礯ፓ袅㪔獥矦ᛗ扗ፓ袅皈ӥ$ mkdir /Users/jonny/vcs/demo; cd $_# ୌ缏瑿碍硁䓚 (local repository)$ git init 43
ᒫ 2 物碝ी (add)牏ᑏ㵕 (mv)牏㳫ᴻ (rm)ݢమ౮ฎ CRUD 愊ጱ Create, Upgrade, Delete牐44
ݦ棎# 碝ी (Add)牏㳫ᴻ (Remove)$ git { add | rm } README.md# ᑏ㵕 (Move)$ git mv README.md foo.md
ᒫ 3 物Ի (commit)ࣁ Git ጱྯӞ㵕愊牧᮷ฎአ commit 㬵懿袅ጱ牐46
# Ի (Commit)$ git commit README.mdgit commit ૢ棎蜍獈ਁ47
Upgradeto Lv148
ᒫ 4 物礚፡制眲 (status) 膏稲ݥ懿袅 (log)ࣁ Git ጱӮኴ蝈᪠碻牧አ status log 疰䌘ԧ牐49
礚፡制眲 (status)匍ࣁ狶کߺӞ㵕ԧ? ፡ status 疰Ꭳ螇ԧ牦50
# 粚制眲 (Status)$ git statusgit status51
礚፡稲ݥ懿袅 (log)ࣁ Console 愊㲺Ռ聜䙼አ git lg ጱ獨ݷ (alias) 㬵፡粚䰽牐52
# 薪፡粚懿袅$ git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset%s %Cgreen(%cr) %C(bold blue)<%an>%Creset'git log53
ᒫ 5 物礚፡懿袅 (checkout)拻ਠԧ㱪ਂ蝱ଶ牧矑ӥ㬵疰ฎ捝玲 (Read) 蝱ଶ牐54
# 礚፡礓蝱ଶ碻ጱ懿袅$ git checkout 09a3d66ૢ棎ૢ棎ૢ棎55
ᒫ 6 物穉䌘粚癩吖 (diff)㴄㴄硬ԧՋ讕 code? 磪 diff ܨݢӞፓ啻簁牐56
# 穉䌘 (Different) 吚獮粚癩吖$ git diff HEAD57
Upgradeto Lv258
ᒫ 7 物വ蝑 (push)Ӥ㯽ᛗ螐ᒒ (remote) ጱ碍硁䓚 (Repository)牐59
# വ蝑 (Push)$ git push origin masterૢ棎ૢ棎60
ᒫ 8 物玲 (pull)ℂ螐ᒒ (remote) 碍硁䓚 (Repository) ӥ斉牐61
# 玲 (Pull)$ git pull origin masterૢ棎ૢ棎62
ᒫ 9 物䞳祌狕硬 (checkout)纷ୗ䌃粋ԧ? ᮎ疰᯿毣㬵螂މ牦63
# 萞ኧ checkout 䞳祌狕硬$ git checkout README.mdૢ棎ૢ棎64
65Upgradeto Lv3
ᒫ܈物獤ඪ (branch) 膏ݳ㬫 (merge)䋊䨝 branch merge ܨݢ藯ฎ聜य़౮ۑێԧ牦66
粚䰽ࣁ樄ত獮ض፡Ӟӥ奾ຎ牐masterdev67
獤ඪ (branch)ݶӞ稠蝿瞁牧者磪犋ݶጱ獤ඪ玀眐牐68
# ୌ缏獤ඪ$ git branch dev$ git checkout -b devૢ棎master69ૢ棎
# ڜڊ獤ඪ$ git branchmaster70
# 萞ኧ checkout 獥矦ᛗ dev 獤ඪ$ git checkout devૢ棎 x2devmaster71
# ෝ dev 獤ඪ碝ी䲆礯牧㪔Ի$ git add branch_demo.txt$ git commit -m 'Demo for branch'dev72
Branch? 膐ಋݢ樄ԧ碝ጱ branch 盅螭ᥝࣁ碝ጱ branch愊 commit 螂፡ک獤ඪ䰽牐devmasterUncommittedchanges73
ݳ㬫 (merge)玀眐獤ඪԋԧ牧者磪ࢧکԆ娄ጱӞॠ牐74
ૢ棎 x2# 萞ኧ checkout 獥矦ᛗ master 獤ඪ$ git checkout masterdevmaster75
# ෝ master ݳ㬫 dev 獤ඪ$ git merge --no-ff devmaster76
ݳ㬫ਠ౮牦master77
眅૪聜Ӥ犔ஞဩCongratulation !78
Ⅴ. GitHub 褰璤介涢79
च砺֢ (Basic)1. ጭ獈 Github牐 - https://github.com/2. 䌘 Lab ጱ Repository 蝱ᤈ fork牐 - https://github.com/chusiang/sandbox/3. ӥ斉纷ୗ嘨牐 $ git clone https://github.com/YourName/sandbox.git4. 碝ी䲆礯㪔Ի牐 $ git { add | status | commit }5. Ӥ㯽纷ୗ嘨牐 $ git push80Login GitHubfork Repositorygit clonegit addgit commitgit statusgit pushFinish?YesNo
蝱褩砺֢ (Advanced)1. ෝٌਙ᪠䕩ٚ稞ӥ斉纷ୗ嘨牐 $ git clone https://github.com/YourName/sandbox.git2. 碝ी牏狕硬牏㳫ᴻ䲆礯㪔Իग़稞牐 $ git { add | mv | rm | status | commit }3. 碝ी獤ඪ㪔Իग़稞牐4. 獥矦ᛗݱ㮆夵袅讨獤ඪ牐 $ git checkout OXOXOXX5. ݳ㬫獤ඪ牐6. Ӥ㯽纷ୗ嘨牐 $ git push origin master81devmasterFinish
ૡ珶๐率82
20152015.10.?- http://mopcon.org83
ਥො翕ᒊhttp://mopcon.org罭妟ᗭhttp://fb.me/mopcon84
85
http://coscup.org86
Q & A瑥纔ೌ訤觬藶㷢ᘍ匍䁰و執կ - http://goo.gl/aqTTYO87
Reference• 匍䁰و執կ - http://goo.gl/aqTTYO• 匍䁰ፗ砮翕࣎ - https://youtu.be/5ftNjrpzVqM• 蝫糞ৼ᮷胼睞ጱ Git 獈槹瞲ܖ | 揔໒禼 (Backlog) - http://backlogtool.com/git-guide/tw/• 䌃妔य़疑ጱ Git 硽䋊 | slideshare - http://www.slideshare.net/littlebtc/git-5528339• Git 䋿率瑽薹 | slideshare - http://www.slideshare.net/pokaichang72/git-42427674• Git ਥොկ - http://git-scm.com/book/zh-tw/v1• 瑽粙㬵რ物• 㾴疑瑿ቘ褾扮 - http://www.ngtaiwan.com• 10 Years of Git | Atlassian Git Tutorial - https://www.atlassian.com/git/articles/10-years-of-git/88
E N D89