iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 7
1
Software Development

30天開發與部署 Laravel 專案系列 第 7

版控工具:git

https://ithelp.ithome.com.tw/upload/images/20200921/20125263mUwhiUHnTx.png
圖片來源

版本控制工具首推 git,雖然還有svn等等。
但普及性來說還是推薦使用git,以git flow為基礎應用分支情境(如下圖),並可衍伸至GitHub、GitLab等。

https://ithelp.ithome.com.tw/upload/images/20200921/201252639vGKcrZf6M.png

圖片來源:高見龍.為你自己學Git

就專案開發流程,可用上圖來解釋。
就個人開發流程,可以用下圖來解釋git如何運作在自己的專案上

https://ithelp.ithome.com.tw/upload/images/20200921/20125263eYQcA2jGua.png

圖片來源

以下為個人常用的git 指令

確認狀態

git status

個人習慣先看git 安裝了沒

https://ithelp.ithome.com.tw/upload/images/20200921/20125263unKJuAsExw.png

初始化

git --version 確認當下git版本

git config 設定基本資訊

git init

新增/合併分支

git branch 分支名稱 新增分支

git checkout 分支名稱 移動到分支進行開發

想合併:先回到master,再合併

git merge 分支名稱

新增節點

git add

git add . 當下目錄與子目錄
git add --all 專案所有目錄
git add -p 部分更新
git add -i 進入終端機模式

git commit

確實寫好commit message,紀錄異動的原因跟項目,讓自己跟後人方便閱讀。日後使用git log時會更好閱讀。

以參考資料中WadeHung提到的規範,好像源自於AngularJS Git Commit Message Conventions,可將commit message分為三大部分:

段落 區塊 說明
Header type feat新增/修改功能、 fix修補bug、 docs文件、style格式、refactor重構、perf改善效能、test測試、chore建構程序或輔助工具變動 、revert
scope 影響範圍,例如資料庫、控制層、模板層等等
subject 對此commit的簡述
Body N/A 此次 Commit 的詳細描述 ,通常git會列出更新範圍
Footer 填寫任務編號 issue編號

git log

基本用法
git log 以文字方式一一呈現commit history

進階用法
git log --graph 左側會多一條線
https://ithelp.ithome.com.tw/upload/images/20200921/20125263FjSuoBzwle.png

git log --graph --decorate --oneline --simplify-by-decoration --all
顯示合併
https://ithelp.ithome.com.tw/upload/images/20200921/201252630Piekgtixo.png

遠端協作

選擇一種git線上工具(GitHub或GitLab),可以把程式碼放上去

git remote 設定網址

git clone 複製檔案

git push 推送到遠端

git pull 從遠端拉下來


參考資料
https://zh.wikipedia.org/wiki/%E7%89%88%E6%9C%AC%E6%8E%A7%E5%88%B6
https://gitbook.tw/chapters/gitflow/why-need-git-flow.html
https://gist.github.com/stephenparish/9941e89d80e2bc58a153
https://wadehuanglearning.blogspot.com/2019/05/commit-commit-commit-why-what-commit.html
https://airfishqi.blogspot.com/2014/04/github-git-add-p-git-stash.html


上一篇
Laravel 環境設定檔
下一篇
Laravel Routing
系列文
30天開發與部署 Laravel 專案30

尚未有邦友留言

立即登入留言