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

版本控管了沒? Coders 必備!

版本控管了沒? Coders 必備!

Taipei Creative Coders #8
版本控管了沒? Coders 必備!

一個非常粗略的版本控管工具介紹

Beb1a4bdcb6aebf855c9b18d9bf8ee3a?s=128

Tom Chen

May 05, 2021
Tweet

Transcript

  1. Tom Chen 2021/5/5 版本控制了沒?
 Coders 必備! Taipei creative coders Meetup

    #8
  2. 今天是⼀個超級粗略的介紹

  3. 主要是希望還沒在⽤的⼈可以開始

  4. 我不會在這邊跟⼤家過指令

  5. Source Control CVS Subversion (svn) Perforce (p4) StarTeam Git Mercurial

    (hg) Plastic SCM
  6. 有什麼好處?

  7. 清楚每⼀次做了哪些 更動 - ⽅便回復 - Debug - 記錄⼯時 - 協作

    - Code Review https://github.com/yychen/dj-registry/commits/master
  8. 基本概念 Working Directory Staging Area Repository ⽬前的⼯作⽬錄 暫存區域 儲存庫 sketch.js

    README.md ⿊⾊:Untracked Files (未追蹤)
  9. 基本概念 Working Directory Staging Area Repository ⽬前的⼯作⽬錄 暫存區域 儲存庫 sketch.js

    README.md 藍⾊:Staged Files (暫存區) sketch.js README.md git add
  10. 基本概念 Working Directory Staging Area Repository ⽬前的⼯作⽬錄 暫存區域 儲存庫 sketch.js

    README.md 綠⾊:Committed Files (已存入) sketch.js README.md git commit sketch.js README.md 46a1c361
  11. 基本概念 Working Directory Staging Area Repository ⽬前的⼯作⽬錄 暫存區域 儲存庫 sketch.js

    README.md 紅⾊:有更動 ⿊⾊:Untracked Files (未追蹤) 綠⾊:Committed Files (已存入) sketch.js README.md 46a1c361 logo.png
  12. 基本概念 Working Directory Staging Area Repository ⽬前的⼯作⽬錄 暫存區域 儲存庫 sketch.js

    README.md 藍⾊:Staged Files (暫存區) 綠⾊:Committed Files (已存入) sketch.js README.md 46a1c361 logo.png sketch.js logo.png git add
  13. 基本概念 Working Directory Staging Area Repository ⽬前的⼯作⽬錄 暫存區域 儲存庫 sketch.js

    README.md 藍⾊:Staged Files (暫存區) 綠⾊:Committed Files (已存入) sketch.js README.md 46a1c361 logo.png git commit sketch.js logo.png sketch.js logo.png ad1eec42 README.md
  14. 基本概念 Working Directory Staging Area Repository ⽬前的⼯作⽬錄 暫存區域 儲存庫 sketch.js

    README.md sketch.js 46a1c361 logo.png git push sketch.js logo.png ad1eec42 README.md Repository GitHub
  15. 基本概念 Working Directory Staging Area Repository ⽬前的⼯作⽬錄 暫存區域 儲存庫 sketch.js

    README.md sketch.js 46a1c361 logo.png git pull sketch.js logo.png ad1eec42 README.md Repository GitHub
  16. 基本概念 Working Directory Staging Area Repository ⽬前的⼯作⽬錄 暫存區域 儲存庫 sketch.js

    README.md sketch.js 46a1c361 logo.png git pull sketch.js logo.png ad1eec42 README.md Repository GitHub Merge Con fl ict
  17. 養成好習慣

  18. 不要⼀⼝氣加 (整個⽬錄) git add . 除非你很清楚你加了什麼

  19. 看清楚加了什麼 git status

  20. 今天的範例在 https://github.com/yychen/tcc-git-django-sample

  21. None
  22. None
  23. 看清楚加了什麼 git diff

  24. None
  25. ⾦鑰、密碼千萬不要進

  26. 這種東⻄進去了 無比的⿇煩

  27. 進了怎麼辦? https://docs.github.com/en/github/authenticating-to-github/removing-sensitive-data-from-a-repository

  28. 看清楚加了什麼 git status

  29. 看清楚加了什麼 git diff

  30. 每次加,都清楚加了什麼 git commit 對⾃⼰進的 code 負責

  31. 也不要進被產⽣出來的檔案 build、.exe、xxx_Data、.dll .DS_Store、thumbs.db .vscode (?) 原則上 https://stackover fl ow.com/questions/32964920/should-i-commit-the-vscode-folder-to-source-control

  32. 你的儲存庫 (repository) 原則上 存放最終可產⽣、執⾏的原始碼 以及相關⽂件

  33. None
  34. 換句話說 某君從儲存庫拉下來⼀整包 就要可以從這⼀包東⻄ 產⽣出⼀個⼀樣的可執⾏的東⻄ 包含說明⽂件、如何把建制的環境建立起來、測試... 等資訊

  35. .gitignore

  36. 多久 commit ⼀次? https://softwareengineering.stackexchange.com/questions/74764/how-often-should-i-do-you-make-commits

  37. commit message 怎麼寫 • https://chris.beams.io/posts/git-commit/ • https://hackmd.io/@yenWu/HJQk5dt2x?type=view (中⽂版) • https://wiki.openstack.org/wiki/GitCommitMessages

  38. Git LFS 那些超⼤張的圖檔、.PSD、聲⾳檔、所有影片相關的、.abc、非⽂字檔...

  39. A Successful Git branching model https://nvie.com/posts/a-successful-git-branching-model/ Branch

  40. 協同合作 • https://github.com/pycontw/pycon.tw/pull/800 • https://github.com/pycontw/pycon.tw/pull/921 • https://github.com/pycontw/pycon.tw/pull/884 • https://github.com/pycontw/pycon.tw/pull/885 Issue

    / Merge Request (Pull Request) / Review
  41. Any questions?