關於 git 你應該知道的操作
git 的使用工具
首先有兩個 可視化工具推薦 :
- gitkraken
一個新出的廣受好評的git 可視化工具。有付費。 - sourcetree
一直在用,就是註冊麻煩,需要翻牆。免費。
個人在用第二個,sourcetree 日常使用可以說是hin方便了。當然,不想額外下軟件的還可以使用 vscode 內置的 git 管理工具,同樣的也是棒棒的。
vscode 的git插件
當然我也在使用 vscode ,除了 vscode 自帶的 git 支持,還可以安裝以下的插件來更好的使用git:
- Git Lens 官推的 git 插件,幾乎該有的都有了,最強大的就是可以查看具體代碼的具體變更,就像下面的這樣:
上一個讓我感覺這麼厲害的還是 visual studio 的內部集成的版本控制功能,但是 visual studio 實在是太大了。不過這個插件美中不足的就是查看歷史實在是太醜了,所以有了下面的這個插件。 - git history 沒毛病,這個插件就是讓你的 提交歷史 可以很直觀的展示出來。
不過,無論怎麼說,git 原生命令還是要了解的,對學習和理解 git 的工作機制會很有幫助,當然對提升逼格也有成效。so,下面的部分主要是針對於 git 命令行的一些快捷操作。
Mac下不可以使用的問題
error: xcrun:error invalid actiive ... missing xcrun at ...
出現的原因是 git 依賴這個 xcode 的這個工具,所以要更新,一般會在更新系統之後出現。
解決辦法就是:
sudo xcode-select --install
等待安裝完成之後就可以了。
git 命令行的一些騷操作
下面總結一些 git 命令中可以快速提高效率和提升幸福度的操作。
git配置別名
可以直接使用命令行修改全局配置,
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.br branch
git config --global alias.unstage 'reset HEAD'
git config --global alias.last 'log -1'
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
也可以通過 vim 更改配置文件來操作。
vi ~/.gitconfig
source ~/.gitconfig
兩者的效果是一致的,可以通過 git config --list
查看添加的配置是否存在。
該部分總結自 廖雪峯:git——配置別名。
(踩坑)常用的回退(救命)操作
如果你已經提交到暫存區了,你可以:
- 撤銷上次提交
git reset --hard '指定的記錄'
如果你想放棄本地修改,你可以:
- 檢出本地
git checkout 'branch'
如果你想修改上一次的提交信息,你可以:
- 修改最後的一次提交
git commit --amend
如果你在排查問題的時候,你可以
* 使用 git fetch
替換 git pull
, 因爲git pull = git fetch + merge local
(踩坑)git 上傳文件忽略大小寫
好的約定其實比技術本身更重要,所以儘可能統一規範大小寫,從而避免修改默認的配置。
git config core.ignorecase false
git config --global core.ignorecase false // 全局設置
git comment 添加規範
feat:新功能(feature)
fix:修補bug
docs:文檔(documentation)
style: 格式(不影響代碼運行的變動)
rebuild:重構(即不是新增功能,也不是修改bug的代碼變動)
test:增加測試
chore:構建過程或輔助工具的變動
config: 配置
example: git commit -m "[feat] 新功能"
總結自 阮一峯: Commit message 和 Change log 編寫指南。
git comment 添加表情
看到別人的comment history有那麼多的卡哇伊的表情,是不是很羨慕,現在自己也可以做到。只需要在comment加入:apple:
這樣的代碼,測試GitHub
和Gitlab
是可用的
git commit -m ':apple: i have a apple'
表情列表如下:
emoji | emoji 代碼 | commit 說明 |
---|---|---|
:art: (調色板) | :art: |
改進代碼結構/代碼格式 |
:zap: (閃電) :racehorse: (賽馬) |
:zap: :racehorse: |
提升性能 |
:fire: (火焰) | :fire: |
移除代碼或文件 |
:bug: (bug) | :bug: |
修復 bug |
:ambulance: (急救車) | :ambulance: |
重要補丁 |
:sparkles: (火花) | :sparkles: |
引入新功能 |
:memo: (備忘錄) | :memo: |
撰寫文檔 |
:rocket: (火箭) | :rocket: |
部署功能 |
:lipstick: (口紅) | :lipstick: |
更新 UI 和樣式文件 |
:tada: (慶祝) | :tada: |
初次提交 |
:white_check_mark: (白色複選框) | :white_check_mark: |
增加測試 |
:lock: (鎖) | :lock: |
修復安全問題 |
:apple: (蘋果) | :apple: |
修復 macOS 下的問題 |
:penguin: (企鵝) | :penguin: |
修復 Linux 下的問題 |
:checkered_flag: (旗幟) | :checked_flag: |
修復 Windows 下的問題 |
:bookmark: (書籤) | :bookmark: |
發行/版本標籤 |
:rotating_light: (警車燈) | :rotating_light: |
移除 linter 警告 |
:construction: (施工) | :construction: |
工作進行中 |
:green_heart: (綠心) | :green_heart: |
修復 CI 構建問題 |
:arrow_down: (下降箭頭) | :arrow_down: |
降級依賴 |
:arrow_up: (上升箭頭) | :arrow_up: |
升級依賴 |
:construction_worker: (工人) | :construction_worker: |
添加 CI 構建系統 |
:chart_with_upwards_trend: (上升趨勢圖) | :chart_with_upwards_trend: |
添加分析或跟蹤代碼 |
:hammer: (錘子) | :hammer: |
重大重構 |
:heavy_minus_sign: (減號) | :heavy_minus_sign: |
減少一個依賴 |
:whale: (鯨魚) | :whale: |
Docker 相關工作 |
:heavy_plus_sign: (加號) | :heavy_plus_sign: |
增加一個依賴 |
:wrench: (扳手) | :wrench: |
修改配置文件 |
:globe_with_meridians: (地球) | :globe_with_meridians: |
國際化與本地化 |
:pencil2: (鉛筆) | :pencil2: |
修復 typo |
寫在最後
騷操作那麼多,肯定不止上面那些,所以本文還是會持續更新的。
最後,希望你和 git 過的幸福。