Git Cheatsheet
Created on Fri, 03 Jan 2020, 05:20PM
Last changed on Fri, 03 Jan 2020, 05:20PM
之前用git 的时候时不时会遇到一些非add, commit, push的情况,也查过不少相关的高级用法,但往往就用一次之后就忘记了,最近看了篇文章,顺着这篇文章也捋一下git的高级用法以备后用。
不那么高级却很有用的Tips
git log --oneline# 简介明了的git日志, 一行就很明了的日志打印形式git checkout -# 回到切换分支之前的分支, 类似于cd -切换回之前的工作目录git log --all --grep='homepage'# 在所有提交日志中搜索包含「homepage」的提交git log --author="Maxence"# 获取某人的提交日志git commit --amend -m "更新后的提交日志"# 编辑上次提交的messagegit add . && git commit --amend --no-edit# 在上次提交中附加一些内容,保持提交日志不变git commit --allow-empty -m "chore: re-trigger build"# 空提交 —— 可以用来重新触发 CI 构建git reflog# 获取所有操作历史git reset HEAD@{4}# 重置到相应提交git reset --hard <'commit-hash'># ……或者……git diff master..my-branchgit fetch origingit checkout mastergit reset --hard origin/master
Advanced cheat sheet
squash 提交
比方说我想要 rebase 最近 3 个提交:
git rebase -i HEAD~3保留第一行的
pick,剩余提交替换为squash或s清理提交日志并保存(vi 编辑器中键入
:wq即可保存)
pick 64d26a1 feat: add index.js
s 45f0259 fix: update index.js
s 8b15b0a fix: typo in index.jsFixes
比方说想在提交 fed14a4c 加上一些内容。
git add .
git commit --fixup HEAD~1
# 或者也可以用提交的哈希值(fed14a4c)替换 HEAD~1
git rebase -i HEAD~3 --autosquash
# 保存并退出文件(VI 中输入 `:wq`)...未完待续...
Reference
[1] git 高级用法小抄
Last updated
Was this helpful?