工具GitGit 实用技巧速查手册
阿晖Git 实用技巧速查手册
日常开发中最常遇到的 Git 场景,一条命令解决问题。收藏备用。
一、撤销与回退
撤销工作区的修改(还没 add)
撤销已 add 的文件
撤销最近一次 commit(保留修改)
撤销最近一次 commit(丢弃修改)
修改最近一次 commit 的信息
二、分支操作
创建并切换到新分支
1 2 3
| git checkout -b <分支名>
git switch -c <分支名>
|
删除本地分支
1 2
| git branch -d <分支名> git branch -D <分支名>
|
删除远程分支
1
| git push origin --delete <分支名>
|
查看已合并/未合并的分支
1 2
| git branch --merged git branch --no-merged
|
三、暂存工作现场
临时保存当前工作
恢复最近一次 stash
查看所有 stash
恢复指定 stash(不删除记录)
1
| git stash apply stash@{2}
|
四、查看与搜索
查看某文件的修改历史
1
| git log --follow -p -- <文件名>
|
查看谁改了某一行(逐行追溯)
搜索代码内容
查看某次 commit 改了什么
查看两个分支的差异
五、合并与变基
合并分支(保留分支历史)
变基(让提交历史更干净)
合并冲突时中止
1 2
| git merge --abort git rebase --abort
|
交互式变基(整理最近 N 次提交)
常用操作:pick 保留、squash 合并、drop 删除、reword 改信息。
六、远程仓库
查看远程仓库信息
更换远程仓库地址
1
| git remote set-url origin <新地址>
|
拉取远程分支但不合并
强制推送(慎用)
1
| git push --force-with-lease origin <分支名>
|
--force-with-lease 比 --force 安全,会检查远程是否有别人的新提交。
七、.gitignore 生效问题
文件已经被跟踪了,加 .gitignore 不生效?
1 2 3
| git rm -r --cached . git add . git commit -m "更新 .gitignore"
|
--cached 只从 Git 索引中删除,不会删除本地文件。
八、实用别名配置
1 2 3 4 5 6
| git config --global alias.st status git config --global alias.co checkout git config --global alias.br branch git config --global alias.ci commit git config --global alias.last 'log -1 HEAD' git config --global alias.unstage 'reset HEAD --'
|
配置完直接用:
九、找回误删的代码
查看所有操作记录(包括已删除的 commit)
恢复到指定操作
1
| git checkout <reflog中的commit-id>
|
reflog 是救命稻草,只要做过就有记录,reset –hard 也能找回来。
十、常见翻车场景速查
| 场景 |
解决方案 |
| commit 写错信息 |
git commit --amend |
| add 了不该 add 的文件 |
git reset HEAD <文件> |
| 切分支时有未提交的修改 |
git stash → 切分支 → git stash pop |
| 合并冲突不想合了 |
git merge --abort |
| push 了想撤回 |
git revert <commit-id>(生成反向提交) |
| 误删分支 |
git reflog 找到 commit → git checkout -b <分支名> <commit-id> |
| 改乱了想回到某个版本 |
git reset --hard <commit-id> 或 git checkout <commit-id> -- <文件> |
掌握这些,日常开发 90% 的 Git 问题都能快速解决。遇到复杂场景再查文档也不迟。