状态与撤销
git status // 让我看看怎么个事
git restore <file> // 按下回车就和你的文件撒哟娜拉了
*git checkout -- <file> // 撒哟娜拉 in 2000s
暂存区操作
git add <file> // 温柔的把写完的胡话扔到篮子里
git restore --staged <file> // 撤销暂存区修改 add→不add
*git reset HEAD <file> // 旧撤销暂存区修改 不 restore
git rm --cached <file> // 暂存区丢弃 保留工作区文件 add 了忘加 .gitignore 的文件用
提交与历史
git commit -m <info> // 把胡话 push 就没脸见同事了
git log // 查有没有提交胡话
git reset --soft HEAD^ // 还好没 push 消灭证据把胡话改了
git reset --hard HEAD~1 // 时光机
git reflog // 哎我操胡话和代码全滚了
分支与合并
git switch <branch> // Nintendo
*git checkout <branch> // HELLO WORLD
git branch -m <old> <new> // 农奴翻身做主人
git merge --no-ff -m <commit> <branch> // 合并胡话到当前分支
git merge --squash <branch> // 打包合并
git cherry-pick <commit> // 重放提交到当前分支
git rebase <branch> // 将当前分支的起点移到分支的最新处
清理
git clean -fd // node_modules backhole.gif
重磅消息:为了解决和文件撒哟娜拉的困扰 我们引入了胡话烘干桶!
git stash // 写一半胡话去玩任天堂
git stash list // 列出烘干胡话
git stash apply stash@{0} // 把胡话干夹在胡话里
git stash pop stash@{0} // 吃掉胡话干
git stash drop stash@{0} // 扔掉过期胡话干
git restore --source=stash@{0} -- <file> // 胡话干占领地球
*git checkout stash@{0} -- <file> // 旧胡话干占领地球
* tagged is gitting old