一直用的都是SourceTree ,结果最近遇到不好使了,说用用git命令吧,没记住。干脆总结一下吧! 以下是 Git 的常用命令 分类整理,涵盖基础操作、分支管理、远程仓库、标签管理、撤销修改、查看比较等场景。每个命令都附有简要说明和示例,方便快速查阅。
一、基础操作
-
初始化仓库
git init:初始化一个新的 Git 仓库。git init --initial-branch main:指定默认分支名称(如main)。git clone <url>:克隆远程仓库到本地。
-
配置
git config --global user.name "Your Name":设置全局用户名。git config --global user.email "email@example.com":设置全局邮箱。git config --list:查看当前配置。
-
添加/提交文件
git add <file>:将指定文件添加到暂存区。git add .:添加当前目录下所有文件到暂存区。git commit -m "message":提交暂存区内容到本地仓库。git commit --amend:修改最近一次提交的内容或提交信息。git commit -a:直接提交工作区所有已跟踪文件的修改。
-
状态查看
git status:查看工作区和暂存区的状态。git diff:查看工作区与暂存区的差异。git log:查看提交历史。git blame <file>:查看文件每一行的修改记录及作者。
二、分支管理
-
分支操作
git branch:列出所有本地分支。git branch <branch-name>:创建新分支。git checkout <branch-name>:切换分支。git checkout -b <branch-name>:创建并切换到新分支。git merge <branch-name>:将指定分支合并到当前分支。git rebase <branch-name>:将当前分支的提交移到指定分支之后。git branch -d <branch-name>:删除本地分支。git branch -D <branch-name>:强制删除本地分支(即使未合并)。git branch -r:查看远程分支。git branch -a:查看所有分支(本地 + 远程)。git branch -m <old-name> <new-name>:重命名分支。
-
合并与冲突
git merge --abort:中止当前合并操作。git cherry-pick <commit-hash>:选择性地应用某个提交。git cherry-pick --continue:继续 cherry-pick 操作。git cherry-pick --abort:中止 cherry-pick 操作。
三、远程仓库
-
远程操作
git remote -v:查看远程仓库地址。git remote add <name> <url>:添加远程仓库。git remote rename <old-name> <new-name>:重命名远程仓库。git remote remove <name>:删除远程仓库。git remote set-url <name> <new-url>:修改远程仓库地址。
-
推送与拉取
git push <remote> <branch>:推送本地分支到远程仓库。git push -u <remote> <branch>:首次推送时设置上游分支。git push --tags:推送所有标签到远程仓库。git fetch <remote>:从远程仓库获取最新内容(不合并)。git pull <remote> <branch>:拉取远程分支并合并到当前分支。git pull --rebase:拉取后使用 rebase 而非 merge。
-
清理远程分支
git fetch --prune:清理本地已删除的远程分支。git remote prune <remote>:清理指定远程仓库的无效引用。
四、标签管理
- 标签操作
git tag:列出所有标签。git tag <tag-name>:创建轻量标签。git tag -a <tag-name> -m "message":创建带注释的标签。git tag -d <tag-name>:删除本地标签。git push <remote> <tag-name>:推送单个标签到远程。git push --tags:推送所有标签到远程。
五、撤销与修改
-
撤销操作
git reset --hard HEAD:撤销工作区和暂存区的所有修改(危险操作!)。git reset --soft HEAD^:撤销上一次提交,保留修改在暂存区。git reset --mixed HEAD^:撤销上一次提交,保留修改在工作区(默认)。git checkout <file>:撤销指定文件的修改。git revert <commit-hash>:生成一个新的提交,撤销指定提交的更改。
-
暂存与恢复
git stash:保存当前工作区的修改。git stash apply:恢复最近一次保存的修改。git stash pop:恢复并删除最近一次保存的修改。git stash list:查看所有保存的修改。git stash drop <stash-name>:删除指定的保存记录。git stash clear:删除所有保存的修改。
六、高级操作
-
调试与分析
git bisect start:启动二分查找问题提交。git bisect good/bad:标记提交为正常或有问题。git bisect reset:退出二分查找模式。
-
清理与优化
git clean -f:删除未跟踪的文件。git clean -fd:删除未跟踪的文件和目录。git gc:清理和优化仓库。git reflog:查看操作历史(包括 HEAD 指针移动)。
-
其他实用命令
git ls-files:列出 Git 跟踪的文件。git log --oneline:以简洁格式查看提交历史。git log --graph:可视化提交历史。git log --since="2 days ago":查看最近两天的提交。git log --author="name":按作者筛选提交。git log --grep="keyword":按提交信息筛选提交。
七、快捷方式与别名
-
设置别名
bashgit config --global alias.co checkout git config --global alias.br branch git config --global alias.ci commit git config --global alias.st status设置后可使用
git co代替git checkout。 -
自定义命令
bashgit config --global alias.last 'log -1'使用
git last查看最近一次提交。
八、常见错误与修复
-
解决冲突
- 手动编辑冲突文件,标记为
<<<<<<<,=======,>>>>>>>。 - 使用
git add <file>标记冲突已解决。 - 最终执行
git commit完成合并。
- 手动编辑冲突文件,标记为
-
恢复误删文件
git fsck --lost-found:查找孤立的提交或文件。- 通过
git show <commit-hash>:<file-path>恢复文件。
九、扩展工具
-
图形化工具
- SourceTree:可视化分支、提交和冲突。
- GitKraken:跨平台图形化管理工具。
- GitHub Desktop:适合 GitHub 用户的简单操作。
-
自动化脚本
- 使用
git hook自定义提交前/后行为(如pre-commit,post-commit)。
- 使用
十、学习资源
- 官方文档 :Git Documentation
- 在线教程 :
- 练习平台 :
总结
Git 的命令丰富多样,掌握核心命令(如 add, commit, branch, push, pull)即可满足日常开发需求。对于高级功能(如 rebase, cherry-pick, stash),建议结合实际场景逐步学习。如果需要更详细的帮助,可以使用 git help <command> 查看具体命令的用法。