撤销一/多个 commit
# revert
# 当想撤回主分支上某个 commit 时
git revert commitid # 如果有冲突需要解决冲突,并 git revert --continue, 完成之后会自动提交一个 commit,可以多次操作,并将多个 commit 合并成一个
git revert -n commitid # 同上,但不会自动提交,可以 revert 多次
删除对当前分支的修改
git checkout . # 删除对当前追踪文件的修改
git clean -df . # 删除对当前未追踪文件的修改
多commit合并
参考 https://github.com/Jisuanke/tech-exp/issues/13
假设有多个 commit 按顺序提交 commit-0 commit-1 commit-2 commit-3
假设是想合并 commit-123
先 rebase
git rebase -i 5d39ff2(commit-1的 id)
git rebase -i HEAD~3
-> 打开 vim
pick e7ba81d Commit-1
pick 5756e15 Commit-2
pick b1b8189 Commit-3
-> 修改 pick 为 squash 或者缩写 s
pick e7ba81d Commit-1
s 5756e15 Commit-2
s b1b8189 Commit-3
-> 出现一个新页面,再保存退出
-> 可以查看 log,现在 commit-2和 commit-3都被合并到 commit-1里,如果需要,可以再把 commit-1 reset,并重新 commit,修改 commit message
stash
$ git stash drop stash@{0} 这是删除第一个队列
恢复本地被删除的分支
$ git branch -D landing_page_style_fix
Deleted branch landing_page_style_fix (was 43273895f).
$ git checkout -b newbranch 43273895f
查找提交记录
# 查看之前压测时间段的提交记录
git log --committer="yunyi" --after="2022-3-1" --before="2022-3-10" --pretty=format:"%an %ad : %s" --date=short --no-merges --reverse
# 查看所有的提交记录,按空格可以翻页,多按一会,就可以找到对应提交记录commit的commit id
git log --committer="yunyi"