Git 小聚:Git 跟你想的不一樣(Part 1)
(JU᪑你తෆҰᒬ高見龍1BSUࢧ
View Slide
ൣྫ檔Ҋhttps://bit.ly/2IQEwUR
ࣗզհ
a.k.a Eddie愛現! 喜歡冷門的玩具Ruby/Rails/iOS app 開發者、講師Ruby 技術推廣、教育、諮詢台灣、日本等國內外 Ruby 技術研討會講者目前於五倍紅寶石擔任紅寶石鑑定商職務部落格:https://kaochenlong.com高見龍photo by Eddie@eddiekao
發售中!https://railsbook.tw/
發售中!https://gitbook.tw/
։࢝೭લ
༗ᔒ༗ୈҰ࣍ᡒա(JUṜࡾݸࣈతਓ
https://gitbook.tw/
࡞্༗ࡏ༻(JUɼୠ༗(JUᙛ'51ࡏ༻ʁ
ိݯɿIUUQTYLDEDPNʮṜबੋ(JUɼሏ༻Ұछඬ྄తࢄࣜᅷܕཧܕతٕज़ိ᪦զ၇ሢҊత㚎༰ʯʮࠅʂṜཁዎኄ༻ʁʯʮෆಓɼେ֓बੋهҰࠣऴػࢦྩɼࢦྩᏏҰᏏ䈕Ҋब။ಉ㑊ྃɻՌᚙੜɼઌ䈕Ҋઌඋ㟨Ұ㟨౸ผతํɼሢҊ䜤ᎃɼવޙॏ৽ԼࡌҰ㟨શ৽తሢҊबߦྃɻʯ
ຊจ։࢝
൛ຊ߇੍7FSTJPO$POUSPM
! 那個...你有聽過 Git 嗎? 那是什麼?"啊就一種分散式的版本控制系統啊!# 分散? 版本???? ?
ॄኄ൛ຊ ཁ߇੍ॄኄ
ॴҎɼॄኄੋʮ൛ຊʯ
版本2 版本3 版本4 版本5版本12016/2/8 2016/2/10 2016/5/8 2016/8/22 2016/11/28
ࢄࣜ
$ Sherly" Eddie% Emily& PicassoOctocat我做好三角型囉!我改了兩個圈圈!收到!收到!收到!我刪了一個方塊!OK, 好! OK, 好!
උ份ब૾؝༡ፍత࣌ީ။Ṷଘ༡ፍਐҰᒬ
㑖࢙ل㑚ٴᨽᎦग़ࣄత࣌ީ你။ಓੋኺॄኄ࣌ީ։࢝ब༗ɼҎٴಓ֘ፙ୭ိഃ
$PODVSSFOU7FSTJPOT4ZTUFN $74TJODF
4VCWFSTJPO 47/
ੋ
Ռᔒ༗࿏ɼ҃ੋ47/తثނোత࣌ީศແ๏༻
ᔒ༗࿏बෆೳሜDPEFʁ(JU)VCᆦᎃత࣌ީେՈ။։؝সత說ՄҎԼ൝ྃ哈囉, 你好!
(JU
-JOVT5PSWBMETGPSNBOBHJOH-JOVYLFSOFMTPVSDFDPEFJOphoto by Krd
Ұఆཁ༻ऴػࢦྩ嗎
ࢧ#SBODI
ሣࢧతޡղ 你૾தతࢧॄኄᒬࢠ
photo by Mark Fischer
photo by Caroline
ࢧੋҰுషࡏݸ$PNNJU্తషࢴ
ࢧศٓతҝॄኄ
ॄኄ࣌ީཁ༻ࢧ
৽⃧ࢧDBU$ git branch catᒾࢹࢧ$ git branchcat* master$ git branch -d catDeleted branch cat (was cb96971).႟আࢧDBU
౸DBUࢧ$ git checkout cat౸EPHࢧɼՌ֘ࢧෆଘࡏɼ။ࣗಈݐཱ৽తࢧ$ git checkout -b dog
߹ซࢧ
ଖመࢧੋᔒ辦๏߹ซత你߹ซతੋࢧॴࢦ౸త$PNNJU
߹ซࢧDBU$ git checkout master$ git merge cat
߹ซաతࢧՄҎ႟ᎃ嗎
ཁዎኄऔফ߶߶Ṝ࣍త߹ซ㐫گ
զ༗ࠣਓతࢧ༗ىိ૾ࢧతʮখࣖ朵ʯઢᅷɼዎኄզతࢧᔒ༗就是這種東西㐫گ
Ҽҝෆधཁ啊ʂ
$ git merge cat --no-ffඇշ߹ซ 'BTI'PSXBSE
ᚙੜিಥ $POqJDUྃɼዎኄ辦㐫گ
༻3FCBTF߹ซ
photo by UGA College of Ag & Environmental Sciences
e076c835c42eb43d89f17acb76ccce981ad3 dogcatmasterHEAD$3FCBTF߹ซ
35c42e76ccce981ad3 dogmasterb43d89f17acbcatHEAD$ git rebase dog3FCBTF߹ซ
f17acbb43d8935c42e76ccce981ad3 dogmasterb43d89f17acbcatHEAD$ git rebase dogc871e3ab12cd cat HEAD3FCBTF߹ซ
3FCBTFෆੋႩԼష্
ཁዎኄऔফ߶߶Ṝ࣍తSFCBTF߹ซ㐫گ
ଖሏৗݟ㐫گ
༗ࠣൺֱػີత檔Ҋզෆ์ࡏ(JUཫ໘Ұىඋ份㐫گ
HJUJHOPSFhttps://github.com/github/gitignore
你ෆখ৺ாᥒີᛰሜࡏݸ檔Ҋཫɼఏަࣕਪग़ڈྃ㐫گ
$ git filter-branch --tree-filter"rm -f config/password.txt"ሣ㑌ݸઅᴍ႟আಛఆ檔Ҋ
ਫ਼ਆෆɼෆখ৺༌ೖྃHJUSFTFU)&"%?IBSEࢦྩɼ檔Ҋؐٹಘճိ嗎㐫گ
ௐ閱SFqPH$ git reflog$ git reset --hard 823520edճ౸SFTFU೭લతઅᴍ
લҰఱᔒਭɼෆখ৺ؐᔒ߹ซతࢧ႟ᎃྃɼٹಘճိ嗎 㐫گ
ௐ閱SFqPH$ git reflog$ git checkout -b new_branch_name823520ed༻ಹݸઅᴍ၏ग़৽తCSBODI
ҝॄኄ༗࣌ީ။ਪෆ্ڈʁ
ख䳾ଠຫ
ຊိෆ༻Ṝটతʂ
ߋଟ㐫گɼჩ閱IUUQTHJUCPPLUX
⾼高⾒見見龍 BlogFacebookTwitterEmailMobilehttps://kaochenlong.comhttps://www.facebook.com/eddiekaohttps://twitter.com/eddiekao[email protected]+886-928-617-687
(JUখঞ
ଘეҬ 4UBHJOH"SFB࡞㑚 8PSLJOH%JSFDUPSZṶଘݿ ຊ 3FQPTJUPSZHJUBEEHJUDPNNJUHJUQVTIHJUQVMMHJUSFTFUHJUSNDBDIFEṶଘݿ ԕ 3FQPTJUPSZ
暫存區域 Staging Area工作目錄 Working Directory儲存庫(本地) Repositorygit addgit commitgit resetgit rm --cached儲存庫(遠端) Repositorygit pushgit pull$ git config --global user.name "5xruby"$ git config --global user.email "[email protected]"設定:$ git init初始化:$ git add FILENAME把檔案加到暫存區域:$ git status查看狀態:$ git commit -m "add index.html"提交:$ git log檢視紀錄:$ git reset HEAD^取消最後一次提交:$ git branch 5xruby新增分支 "5xruby":$ git branch檢視目前分支:$ git branch -d 5xruby刪除已合併分支 "5xruby":$ git checkout 5xruby切換分支到 "5xruby" :$ git merge 5xruby合併分支 "5xruby":$ git remote add origin REMOTE_URL新增遠端節點 "origin":$ git remote -v檢視遠端節點:$ git remote rm origin刪除遠端節點 "origin":$ git push origin master把 "master" 分支內容推往 "origin" 節點:$ git pull origin master把遠端 "origin" 節點的 "master" 拉回本機並進行合併: