Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Git & Heroku Tutorial @ CCSP 2012F

1b56cc5159a07e4eee8f819c1a2557e9?s=47 Johnson Liang
November 07, 2012

Git & Heroku Tutorial @ CCSP 2012F

台大資工 網路及平台服務程式設計 git & heroku 投影片 :: Slides for NTU-CSIE Cloud Computing Serverice Programming.

Licensed as CC BY-SA 3.0.
Entypo pictograms by Daniel Bruce — www.entypo.com
Git Logo by Jason Long — http://git-scm.com/downloads/logos

1b56cc5159a07e4eee8f819c1a2557e9?s=128

Johnson Liang

November 07, 2012
Tweet

More Decks by Johnson Liang

Other Decks in Education

Transcript

  1. git & Heroku MrOrz 12年11月22日星期四

  2. 0 എܠ஌ࣝ զ၇త೔ৗ ൛ຊ߇੍ ଟਓڠ࡞ Images and concepts are from

    http://git-scm.com/video/what-is-version-control 12年11月22日星期四
  3. զ၇త೔ৗ w ֖৽䈕Ҋ w ଘ䈕 w ฤाሏ w ࠶ଘ䈕 12年11月22日星期四

  4. զ၇త೔ৗ w ֖৽䈕Ҋ w ଘ䈕 w ฤाሏ w ࠶ଘ䈕 ൛ຊ߇੍ܥ౷

    㢨ॿզ၇೭႔ 12年11月22日星期四
  5. զ၇త㑖࢙ 㑌࣍౎վҰᴍᴍɼ޷૾኷௚᧺ http://git-scm.com/video/what-is-version-control 12年11月22日星期四

  6. զ၇త㑖࢙ 㑌࣍౎վҰᴍᴍɼ޷૾኷௚᧺ վྃ啥ʁ http://git-scm.com/video/what-is-version-control 12年11月22日星期四

  7. ൛ຊ߇੍ w ҝॄኄᏓߋ w ॄኄ࣌ީᏓߋ w Ꮣߋྃॄኄ 12年11月22日星期四

  8. େՈత㑖࢙ େՈኺओ䈕Ҋݿ፤֤ࣗత䈕Ҋɼվ׬ޙ์ճڈ http://git-scm.com/video/what-is-git 12年11月22日星期四

  9. ଟਓڠ࡞ w ୭Ꮣߋతʁ w ଟਓվෆಉత䈕Ҋ w ଟਓվ૬ಉత䈕Ҋ 12年11月22日星期四

  10. 1 લஔ࡞ۀ ҆᧋ ઃఆ਎෼ ॳ࢝Խ 12年11月22日星期四

  11. ҆᧋ w ੥ݟ'#(SPVQɻ IUUQTXXXGBDFCPPLDPNHSPVQTOUV'DDTQQFSNBMJOL Ұ ୆ ి ᡵ Ұ ࣍

    12年11月22日星期四
  12. ઃఆ਎෼ • git config --global user.name <名字> • git config

    --global user.email <email> • git config --global core.editor vim Ұ ୆ ి ᡵ Ұ ࣍ 12年11月22日星期四
  13. ॳ࢝Խ w DE౸QSPKFDUత໨㑚 w HJUJOJU w ݐཱHJU w ࠶ଧҰ࣍HJUJOJU။෴֖ ֖

    ৽ 䈕 Ҋ ݿ ࣌ git init @ ~/MrOrz/mongolab 12年11月22日星期四
  14. 2 git࢖༻ྲྀఔ ֓೦ 䈕Ҋྨܕ ૹਐ䈕Ҋݿ 䈕Ҋత֯౓ HJUJHOPSF http://git-scm.com/book/en/Git-Basics-Recording- Changes-to-the-Repository 12年11月22日星期四

  15. ֓೦   ⏶ ⏶ Working Directory Staging Area Repository

    git status ᙛલ㐫ଶ 12年11月22日星期四
  16. ֓೦   ⏶ ⏶ Working Directory Staging Area Repository

    TUBUVTཫ؃ಘ౸ ੔ݸࢿྉᇄ݁ߏ ᤽ࡏHJUཫ໘ 就是你的檔案 將送進檔案庫裡的檔案們 檔案的前世今生 12年11月22日星期四
  17. 䈕Ҋྨܕ   ⏶ ⏶ Working Directory Staging Area Repository

    ੔ݸࢿྉᇄ݁ߏ 就是你的檔案 tracked files:已納入版本控制的檔案 untracked files:沒納入版本控制的檔案 12年11月22日星期四
  18. 䈕Ҋྨܕ   ⏶ ⏶ Working Directory Staging Area Repository

    tracked files untracked files Create README.md git status mkdir log --> not in git status Tracking “files” only! So where are the tracked files? They are not displayed by default, unless... 12年11月22日星期四
  19. ४උૹਐ䈕Ҋݿ   ⏶ ⏶ Working Directory Staging Area Repository

    !:git add <檔名> ←:git reset HEAD <檔名>  unmodified files untracked files modified files staged files modify existing file git status; add an untracked file modify another existing file git add them git status git reset HEAD xxxxxx git status 12年11月22日星期四
  20. ૹਐ䈕Ҋݿ   ⏶ ⏶ Working Directory Staging Area Repository

    !:git commit <檔名> ←:git reset --soft HEAD^  unmodified files untracked files modified files staged files git log 㑖࢙ه㑚 git commit; git status; git log git reset --soft HEAD^ 12年11月22日星期四
  21.  䈕Ҋత֯౓ unmodified  untracked  modified  staged Working

    Directory git status git log git commit git add 檔名 ฤा 12年11月22日星期四
  22.  䈕Ҋత֯౓ unmodified  untracked  modified  staged Working

    Directory git status git log git commit git add 檔名 ฤा git reset --soft HEAD^ git checkout -- 檔名 git reset HEAD 檔名 12年11月22日星期四
  23. HJUJHOPSF w ༗ࠣ䈕ҊӬԕෆ૝BEE w ฤाثత࢑ଘ䈕ʢYYYdʣ w $$ తCJOBSZ䈕ɺ෺݅䈕ʢPʣ w HJUJHOPSF

    w Ұݸ䈕໊Ұߦ w Մ༻ w ሣࢠ໨㑚ຠ༗Ꮘ  untracked 12年11月22日星期四
  24. 3 ԕ୺䈕Ҋݿ ֓೦ HJUIVC#JUCVDLFU 44)LFZHFO ૢ࡞ 12年11月22日星期四

  25. ☁ ֓೦   ⏶ Working Directory Staging Area Repository

    ⏶  Remote Repository ⏶ 12年11月22日星期四
  26. ☁ ֓೦ ⏶ Working Directory  Staging Area  Repository

    ⏶  Remote Repository ⏶ Working Directory  Staging Area  Repository ⏶ ⏶ ⏶ 12年11月22日星期四
  27. ☁ ֓೦ ⏶ Working Directory  Staging Area  Repository

    ⏶  Remote Repository ⏶ Working Directory  Staging Area  Repository ⏶ ⏶ ⏶ git@HOST:PATH 12年11月22日星期四
  28. ☁ ֓೦ ⏶ Working Directory  Staging Area  Repository

    ⏶  Remote Repository ⏶ Working Directory  Staging Area  Repository ⏶ ⏶ ⏶ git@HOST:PATH TTI࿈ઢ QVCMJDLFZೝᨽ 12年11月22日星期四
  29. HJUIVC#JUCVDLFU w XJLJɺJTTVFUSBDLJOHɺڠ࡞ऀޭೳ w 44)QVCMJDLFZత໔ີᛰೝᨽ w 0QFOTPVSDFQSPKFDUେଟ์HJUIVC w ࢲਓSFQPTJUPSZ༻#JUCVDLFU 12年11月22日星期四

  30. HJUIVC#JUCVDLFU w XJLJɺJTTVFUSBDLJOHɺڠ࡞ऀޭೳ w 44)QVCMJDLFZత໔ີᛰೝᨽ w 0QFOTPVSDFQSPKFDUେଟ์HJUIVC w ࢲਓSFQPTJUPSZ༻#JUCVDLFU w

    #JUCVDLFU FEV৴ശແ্ݶ໔අࢲਓSFQP 12年11月22日星期四
  31. 44) ☁ 㑌୆ిᡵ༗ࣗݾతҰ౟ɿ ެᮋʢ1VCMJD,FZʣ༻ԙՃີ ࢲᮋʢ1SJWBUF,FZʣ༻ԙղີ ަ׵ެᮋ ༻ሣํతެᮋ Ճີཁၚత㘤ଉ ֤ࣗ༻ࣗݾతࢲᮋ ղີሣํၚိత㘤ଉ

    12年11月22日星期四
  32. 44)1VCMJD,FZ"VUI ☁ ઌ೺զ၇తެᮋ์౸࢕෰ث্ ࢕෰ث༻ެᮋ൑Ꮧੋ୭࿈౸ሏ ަ׵ެᮋ ༻ሣํతެᮋ Ճີཁၚత㘤ଉ ֤ࣗ༻ࣗݾతࢲᮋ ղີሣํၚိత㘤ଉ 用公鑰認人

    12年11月22日星期四
  33. 44),FZHFO w ᒾ查dTTI࿨dTTIJE@STBQVCੋ൱ଘࡏ w एੋɼ௚઀௓աԼ໘㑊ᱜ •ssh-keygen -t rsa w ᪑ஶࠑทత4UFQɿ

    IUUQTIFMQHJUIVCDPNBSUJDMFTHFOFSBUJOHTTILFZT 12年11月22日星期四
  34. 44)LFZ์࢕෰ث 12年11月22日星期四

  35. 44)LFZ์࢕෰ث 12年11月22日星期四

  36. 44)LFZ์࢕෰ث w ෆೳෳ੡౸ଟᰨతᏗߦ࿨ۭന w NBDɿpbcopy < ~/.ssh/id_rsa.pub w -JOVYɿsudo apt-get

    install xclip xclip -sel clip < ~/.ssh/id_rsa.pub w 8JOEPXTɿclip < ~/.ssh/id_rsa.pub 12年11月22日星期四
  37. ઃఆԕ୺SFQPTJUPSZ ☁  已有 Repository  Remote Repository ⏶ git

    remote add origin git@HOST:PATH git remote --verbose Create new repository @ bitbucket git remote add origin 網址 git remote 12年11月22日星期四
  38. ૢ࡞ ☁  Repository  Remote Repository git push origin

    master git pull origin master ೺TFSWFSཫత൛ຊ፛Լိฒ׌߹ซ ೺ిᡵཫత൛ຊਪ্TFSWFS MrOrz/mongolab 底下的 push, pull 開一下 bitbucket 網頁 看變更 12年11月22日星期四
  39. ຊػᔒSFQPTJUPSZ ☁ 當前目錄  Remote Repository ֖ ৽ 䈕 Ҋ

    ݿ ࣌ 介紹協作者 kytu clone 12年11月22日星期四
  40. ຊػᔒSFQPTJUPSZ ☁ 當前目錄  Remote Repository git clone git@HOST:AAAAAA ೺TFSWFSཫత൛ຊ፛Լိ

    ࣗಈࡏᙛલ໨㑚Լɼݐཱ৽ࢿྉᇄ"""""" ֖ ৽ 䈕 Ҋ ݿ ࣌ 介紹協作者 kytu clone 12年11月22日星期四
  41. ຊػᔒSFQPTJUPSZ ☁  Cloned repository  Remote Repository ֖ ৽

    䈕 Ҋ ݿ ࣌ ⏶ 自動記錄 origin = git@HOST:AAAAAA 當前目錄 git remote --verbose 12年11月22日星期四
  42. Heroku ্ၚ౸TFSWFS 4FSWFSಛੑ QBDLBHFKTPO1SPDpMF )FSPLVࢦྩߦ޻۩ 4UBHJOHTFSWFS 12年11月22日星期四

  43. ্ၚ౸4FSWFS w ੯ɿ'51 w ์౸ಛఆࢿྉᇄʢQVCMJD@IUNMɺXXXʣ w ࠓɿHJUQVTI w ༻HJUSFNPUFBEEIFSPLVHJU! w

    QVTI׬੒ޙࣗಈEFQMPZ 12年11月22日星期四
  44. 4FSWFSಛੑ w 1""4 w EZOP w 1SPDpMF IUUQTEFWDFOUFSIFSPLVDPNBSUJDMFTOPEFKTEFDMBSFQSPDFTTUZQFTXJUIQSPDpMF 12年11月22日星期四

  45. QBDLBHFKTPO1SPDpMF w QBDLBHFKTPO w OQNJOTUBMM w 1SPDpMF w GPSFNBO 12年11月22日星期四

  46. IFSPLVࢦྩߦ޻۩ w heroku login೚Կ஍ํ౎ՄҎొೖɼ୞ཁొೖҰ࣍ w heroku create <APP 名> w

    heroku logs <-t> w heroku run node TFSWFS୺ࢦྩߦ w heroku config:add KEY=VALUE؀ڥᏓᏐ w /0%&@&/7 %"5"#"4&@63- 12年11月22日星期四
  47. 4UBHJOHTFSWFS w EFWFMPQNFOUɿ㟬తిᡵ w QSPEVDUJPOɿIFSPLV w TUBHJOHɿIFSPLVɼ㚎෦ଌࢼ༻ w ෆಉతHJUSFNPUF໊᜝ w

    ࢦྩߦ޻۩Ճ্BQQ"11໊ 12年11月22日星期四
  48. 4 ෼ࢧCSBODI ෼ࢧ֓೦ DIFDLPVU %FUBDIFE)FBE .FSHF ଟਓڠ࡞ #SBODIJOH.PEFM 12年11月22日星期四

  49. ෼ࢧ֓೦ w HJUDIFDLPVUCኺ໨લ൛ຊ෼ሸ w HJUDIFDLPVU੾׵൛ຊ w HJUCSBODI؃໨લ༗䬟ࠣ൛ຊ w HJUEJ⒎؃ࠩผ 1.

    No conflict case Branch A app.js 前面加註解 commit Branch B app.js 後面加註解 commit 2. Try checkout. 同一個資料夾,可以切 換不同版本。 git diff 看線圖 git branch 12年11月22日星期四
  50. %FUBDIFE)&"% w Ұछ࢑࣌తCSBODI w DIFDLPVUҰݸᢜతDPNNJU w TUBUVT/PUDVSSFOUMZPOBOZCSBODI w DIFDLPVUCOFX@CSBODI@OBNF git

    checkout xxxxxx git status git checkout -b C 12年11月22日星期四
  51. ෼ٱඞ࿨ɿ.FSHF w վෆಉ䈕ҊɺಉҰݸ䈕ҊతෆಉეҬ w ࣗಈNFSHF w վ౸ಉҰߦ w DPOqJDUɻ merge

    A & B! 改 A 和 B 的同一行。 commit。 merge。 conflict 12年11月22日星期四
  52. ෼ٱඞ࿨ɿ.FSHF w վෆಉ䈕ҊɺಉҰݸ䈕ҊతෆಉეҬ w ࣗಈNFSHF w վ౸ಉҰߦ w DPOqJDUɻ w

    ྫྷᯩʂ merge A & B! 改 A 和 B 的同一行。 commit。 merge。 conflict 12年11月22日星期四
  53. ႔ཧሏɺ$PNNJUሏ w DPOqJDUɻ w git statusྃղ㐫گ w ၏ग़Ꮣߋ w HJUBEEվ޷త䈕Ҋ

    w HJUDPNNJU 12年11月22日星期四
  54. ႔ཧሏɺ$PNNJUሏ w DPOqJDUɻ w git statusྃղ㐫گ w ၏ग़Ꮣߋ w HJUBEEվ޷త䈕Ҋ

    w HJUDPNNJU Resolve conflicts. 12年11月22日星期四
  55. ଟਓڠ࡞ http://git-scm.com/video/what-is-git origin/master git pull git pull git pull git

    pull git push git push git push git push 12年11月22日星期四
  56. ଟਓڠ࡞ w HJUCSBODIBMM w ԕ୺3FQPTJUPSZతNBTUFS໵ੋҰݸCSBODI w PSJHJONBTUFS w PSJHJOଖଞCSBODI w

    $IFDLPVUPSJHJOCSBODI໊။ਐ%FUBDIFE IFBE 12年11月22日星期四
  57. ଟਓڠ࡞ 12年11月22日星期四

  58. ଟਓڠ࡞ 12年11月22日星期四

  59. ଟਓڠ࡞ 12年11月22日星期四

  60. ଟਓڠ࡞ 12年11月22日星期四

  61. #SBODIJOH.PEFM w IUUQOWJFDPNQPTUTBTVDDFTTGVMHJU CSBODIJOHNPEFM 12年11月22日星期四

  62. ଟਓڠ࡞ w ೺ผਓత৽CSBODIൖճՈ w ྫɿ w LZUVሜྃҰࠣመᱛੑత৽ൣྫɼ์ࡏ໊ҝlFYQzతCSBODIɼਪ౸ CJUCVDLFU্ɻ w զᔒ༗FYQCSBODIɻզ૝೺91์্ڈతFYQCSBODIൖճՈɻ

    w զతlPSJHJOzઃҝ֘CJUCVDLFUతSFQPɻ w git fetch origin ፤PSJHJOతॴ༗CSBODIɼୠෆNFSHF w git checkout origin/exp㗞ੜ%FUBDIFE)&"% w git checkout -b exp ݐཱຊ஍୺CSBODIɼ໵ڣFYQ 12年11月22日星期四
  63. ޙՌࣗෛ w HJUQVTIޙHJUDPNNJUBNFOE w DPOqJDU࣌༻HJUHိDPNNJU w ଞෆ။ߋ৽NFSHFIFBE w HJUSFCBTF w

    ᔒࣄผ༻ɻ w HJUDPNNJUTRVBTI w ະိՄೳ။DPOqJDU w HJUSFTFUIBSE൛ຊᥒ w HJUQVTIGPSDF w HJUCSBODI% 12年11月22日星期四
  64. ޙՌࣗෛ w HJUQVTIޙHJUDPNNJUBNFOE w DPOqJDU࣌༻HJUHိDPNNJU w ଞෆ။ߋ৽NFSHFIFBE w HJUSFCBTF w

    ᔒࣄผ༻ɻ w HJUDPNNJUTRVBTI w ະိՄೳ။DPOqJDU w HJUSFTFUIBSE൛ຊᥒ w HJUQVTIGPSDF w HJUCSBODI% w ෆڈ查㕕IUUQXXXOEQTPGUXBSFDPNHJUDIFBUTIFFUIUNM 12年11月22日星期四
  65. End Licensed under CC BY-SA 3.0. Entypo pictograms by Daniel

    Bruce — www.entypo.com Git Logo by Jason Long — http://git-scm.com/downloads/logos 12年11月22日星期四