一直用的都是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"
:按提交信息筛选提交。
七、快捷方式与别名
-
设置别名
git 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
。 -
自定义命令
git 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>
查看具体命令的用法。