Git常用命令速查手册
适用人群:所有使用Git进行版本控制的开发者
目标:快速查找和使用Git常用命令
前置知识:了解基本的版本控制概念
配置Git
初始配置
# 设置用户名git config --global user.name "Your Name"
# 设置邮箱git config --global user.email "your.email@example.com"
# 查看配置git config --list
# 设置默认编辑器git config --global core.editor vim
# 设置默认分支名称git config --global init.defaultBranch main创建仓库
初始化仓库
# 在当前目录创建新仓库git init
# 克隆远程仓库git clone https://github.com/user/repo.git
# 克隆指定分支git clone -b branch-name https://github.com/user/repo.git基本操作
添加和提交
# 查看文件状态git status
# 添加单个文件到暂存区git add filename
# 添加所有修改的文件git add .
# 添加所有文件(包括删除的)git add -A
# 提交更改git commit -m "commit message"
# 添加并提交git commit -am "commit message"
# 修改最后一次提交git commit --amend -m "new message"查看历史
# 查看提交历史git log
# 简洁模式查看历史git log --oneline
# 查看图形化历史git log --graph --oneline --all
# 查看某个文件的修改历史git log -p filename
# 查看最近n次提交git log -n 3撤销操作
# 撤销工作区的修改git checkout -- filename
# 撤销暂存区的修改git reset HEAD filename
# 撤销最后一次提交(保留修改)git reset --soft HEAD^
# 撤销最后一次提交(丢弃修改)git reset --hard HEAD^
# 创建新提交来撤销指定提交git revert <commit-id>分支管理
创建和切换分支
# 查看所有分支git branch
# 查看远程分支git branch -r
# 查看所有分支(本地+远程)git branch -a
# 创建新分支git branch new-branch
# 切换分支git checkout branch-name
# 创建并切换分支git checkout -b new-branch
# 删除分支git branch -d branch-name
# 强制删除分支git branch -D branch-name合并分支
# 合并指定分支到当前分支git merge branch-name
# 合并时创建合并提交git merge --no-ff branch-name
# 查看已合并的分支git branch --merged
# 查看未合并的分支git branch --no-merged变基(Rebase)
# 变基到主分支git rebase main
# 交互式变基(修改历史提交)git rebase -i HEAD~3
# 继续变基(解决冲突后)git rebase --continue
# 放弃变基git rebase --abort远程仓库
管理远程仓库
# 查看远程仓库git remote
# 查看远程仓库详细信息git remote -v
# 添加远程仓库git remote add origin https://github.com/user/repo.git
# 删除远程仓库git remote remove origin
# 重命名远程仓库git remote rename old-name new-name推送和拉取
# 推送到远程仓库git push origin branch-name
# 推送并设置上游分支git push -u origin branch-name
# 推送所有分支git push --all origin
# 强制推送(谨慎使用)git push -f origin branch-name
# 拉取远程更新git pull origin branch-name
# 拉取并变基git pull --rebase origin branch-name
# 获取远程更新(不合并)git fetch origin暂存工作
使用Stash
# 暂存当前工作git stash
# 暂存时添加说明git stash save "work in progress"
# 查看暂存列表git stash list
# 恢复最近的暂存git stash pop
# 恢复指定暂存git stash apply stash@{n}
# 删除暂存git stash drop stash@{n}
# 清空所有暂存git stash clear标签管理
创建和管理标签
# 查看所有标签git tag
# 创建轻量标签git tag v1.0.0
# 创建附注标签git tag -a v1.0.0 -m "Version 1.0.0"
# 推送标签到远程git push origin v1.0.0
# 推送所有标签git push origin --tags
# 删除本地标签git tag -d v1.0.0
# 删除远程标签git push origin --delete v1.0.0查看差异
Diff命令
# 查看工作区和暂存区的差异git diff
# 查看暂存区和最新提交的差异git diff --staged
# 查看两个提交之间的差异git diff commit1 commit2
# 查看两个分支之间的差异git diff branch1 branch2
# 只查看文件名git diff --name-only其他实用命令
清理仓库
# 删除未跟踪的文件git clean -f
# 删除未跟踪的文件和目录git clean -fd
# 预览将要删除的文件git clean -n
# 清理所有未跟踪的文件(包括被.gitignore忽略的)git clean -fx二分查找
# 开始二分查找git bisect start
# 标记当前提交为坏的git bisect bad
# 标记某个提交为好的git bisect good commit-id
# 重置二分查找git bisect reset查看文件内容
# 查看某个提交的文件内容git show commit-id:filename
# 查看某个分支的文件内容git show branch-name:filename常见问题解决
撤销git add
# 撤销单个文件git reset HEAD filename
# 撤销所有git reset HEAD修改已推送的提交信息
# 修改最后一次提交git commit --amend -m "new message"
# 强制推送git push -f origin branch-name解决合并冲突
# 1. 手动编辑冲突文件# 2. 标记为已解决git add filename
# 3. 完成合并git commit总结
Git是开发者必备的版本控制工具,熟练掌握这些命令能大大提高开发效率。建议将常用命令保存为别名,进一步提高工作效率。
# 设置常用别名git config --global alias.st statusgit config --global alias.co checkoutgit config --global alias.br branchgit config --global alias.ci commitgit config --global alias.lg "log --graph --oneline --all"