大概是不太常用的一些 Git 命令。
找回数据
两种办法:
git reflog show
git reset --hard HEAD@{1} # 从上一步找到希望回退的位置
或者
git fsck --lost-found
cd .git/lost-found/
# 用 git show hash 查看悬空对象的内容
# 用 git merge hash 或者 git rebase hash 来恢复到当前分支里
合并分支时创建合并commit
git config branch.master.mergeoptions "--no-ff"
删除远程分支
git push --delete origin branch
删除已经合并的分支
删除已合并的本地分支
git branch --merged \
| grep -E "^\\s+(patch|feat|refactor|test|misc)" \
| xargs -I{} git branch -d {}
删除已合并的远程分支
git branch -r --merged \
| grep -E "^\\s+origin/(patch|feat|refactor|test|misc)" \
| sed 's/origin\///' \
| xargs -I{} echo git push --delete origin {}