Below you will find pages that utilize the taxonomy term “Git”
Posts
conventional-changelog-cli - Generate a changelog from git metadata
conventional-changelog-cli 是一命令列工具,能解析 Git 符合 Angular style 的 Commit log,產生對應的 Change log。
使用前先透過 Npm 安裝套件至全域。
npm install -g conventional-changelog-cli 即可開始使用。
像是顯示 Change log 會產出的內容可帶參數 -w。
conventional-changelog -p angular -i CHANGELOG.md -w -r 0 要產生 Change log 可帶參數 -s。
conventional-changelog -p angular -i CHANGELOG.md -s 這邊筆者用簡單的例子稍微示範一下。
首先先初始 Npm 專案設定檔,因為後面產生的 Change log 版號會要看這設定檔。
npm init 接著初始專案的 Git 版控。
git init 將第一版檔案加入版控。
git add . git commit 確認上版。
git log 嘗試切換專案版本至 1.0.0。
npm version 1.
read morePosts
commitlint - Lint commit messages
commitlint 是一檢測 commit message 的工具。
使用上需先全域安裝 commitlint cli。
npm install -g @commitlint/cli 加入 package.json。
npm init 加入套件 @commitlint/config-conventional。
npm install -save @commitlint/config-conventional 加入 commitlint 設定檔。
echo "module.exports = {extends: ['@commitlint/config-conventional']}" > commitlint.config.js 準備好後可簡易的用 echo 將訊息透過 pipeline 送到 commitlint 做些測試。
echo 'foo: bar' | commitlint echo 'feat: bar' | commitlint 若要針對 git commit message 也是可以,這邊直接將當前專案加入 git 版控。
git init 設定 .gitignore。
vim .gitignore 將 node_modules 這些不必要版控的部分設定上去。
實際 commit 一個不符合規範的 commit message。
read morePosts
Commitizen - Simple commit conventions for internet citizens
Commitizen 可輔助 git 操作人員使用 commit message 的規範。
使用上先全域安裝 commitizen 命令列工具。
npm install -g commitizen 這邊準備一個 git 版控的專案。
git init 加入 package.json。
npm init 調用命令讓專案符合 commitizen friendly。
commitizen init cz-conventional-changelog --save-dev --save-exact 將修改加入版控實際做個測試。
git add . commit 時改用 git cz,會改成用互動方式輸入符合規範的 commit message。
git cz git log Link Commitizen by commitizen
read morePosts
git - Check commit message with git hook
要在 git commit 時去驗證 commit message,可在 commit 的 hook 加掛驗證的處理。
編輯 .git/hooks/commit-msg。
vim .git/hooks/commit-msg 加入驗證程式後存檔離開。這邊筆者使用 [如何使用 git commit template 與 git hooks 管理團隊的 git log | AllenHsu的技術手扎](htt ps://allen-hsu.github.io/2017/07/02/git-message-template-and-githook/) 提供的驗證程式做了些微的調整,用以檢查 commit message 符合 Angular commit style。
#!/usr/bin/env python """ Git commit hook: .git/hooks/commit-msg Check commit message according to angularjs guidelines: * https://docs.google.com/document/d/1QrDFcIiPjSLDn3EL15IJygNPiHORgU1_OOAqWjiDU5Y/edit# """ import sys import re valid_commit_types = ['feat', 'fix', 'docs', 'style', 'refactor', 'test', 'chore', ] commit_file = sys.argv[1] help_address = 'https://docs.
read morePosts
git - Commit template
如果 git commit 的 message 想要有一定的規範,可為 git 設定 commit template,設定完後 template 會在 commit 時帶出範本,供編輯修改 commit message。
要設定 git commit template,我們需先建立範本檔。
vim .gitmessage.txt 設定範本檔的內容。
然後將範本檔設定到設定檔中。
git config commit.template .gitmessage.txt 設定好後 commit 時就會自動帶出設定好的範本了。
git add . git commit 這邊需特別注意一點,如果使用的是 GUI 而非命令列的話,多半範本是不支援註釋的,也就是說如果範本中有使用到註釋,都需自行刪除註釋後才能 commit,不然都會當成 commit message。
Link 一份建议的git commit模板 Git 如何在Commit時加入樣板template的機制 如何使用 git commit template 與 git hooks 管理團隊的 git log | AllenHsu的技術手扎 使用 git commit template 管理 git log - Dev Chill - Medium 3.
read morePosts
Git - Reset local branch to remote state
若在本地操作 Git 錯誤,想將本地分支還原到跟遠端分支一樣狀態的話。
可以將遠端分支 fetch 下來。
git fetch ${RemoteName} ${BranchName} 然後強制將本地分支還原至遠端分支的狀態。
git reset --hard ${RemoteName}/${BranchName} 像是筆者這邊不小心做錯,搞出了 Revert Commit。
這時可以像下面這樣調用。
git fetch origin source git reset --hard origin/source 本地分支就會變為跟遠端分支一樣的狀態,本地做錯的動作就會被還原。
Link Reset a Branch to Remote State with git
read morePosts
Git - Git status pager
使用 Git 做版控的程式如果一次變動過多,使用 Git Status 查閱變動時,我們會看到所有變動會一次全部都顯示出來,無法有效的查閱程式的變動。
這時我們可以調用 Git Config 命令將 Git Status 的分頁功能開啟。
git config --global pager.status true 或是手動修改設定檔開啟也可以。
這樣 Git Status 就會一頁一頁的顯示。
read morePosts
P4Merge - Use P4Merge as git mergetool
要將 P4Merge 與 Git 整合,使用 P4Merge 去做 Merge,可以加入 Merge tool 設定。
git config --global merge.tool p4merge 設定 P4Merge 檔案的位置。
git config --global mergetool.p4merge.path [P4MergeFileLocation] 或是直接開啟 global configuration file 編輯也可以。
[merge] tool = p4merge [mergetool "p4merge"] path = C:\Program Files\Perforce\p4merge.exe 設定好後就可以使用 P4Merge 在 git 做 Merge。
git mergetool Link Setup p4merge as difftool and mergetool on Windows Git for Windows tip: Use P4Merge as mergetool – danlimerick
read morePosts
Visual Studio - Clone git repository
使用 Visual Studio clone git repository,先將 Team Explorer 視窗開啟。
在 本機 Git 儲存機制 這邊點選 複製 按鈕。
再來要設定欲 clone 的 git repository 位置,以及 clone 下來存放的位置。
填完按下 複製 按鈕開始進行 Clone。
Clone 完成會在 Team Explorer 直接列出該 Repository。
透過滑鼠右鍵快顯選單我們可以用命令提示字元或是檔案總管開啟 Clone 下來的 Repository。
read more