『Git』Git 常用命令分类整理
Git三大分区

配置命令
项目配置文件:项目/.git/config
1.git config --local user.name xxx
:设置用户名,信息记录在项目/.git/config
文件中
2.git config --local user.email xxx@xxx.com
:设置邮箱地址,信息记录在项目/.git/config
文件中
全局配置文件:~/.gitconfig
1.git config --global user.name xxx
:设置全局用户名,信息记录在~/.gitconfig
文件中
2.git config --global user.email xxx@xxx.com
:设置全局邮箱地址,信息记录在~/.gitconfig
文件中
系统配置文件:/etc/.gitconfig
(注意:需要有root权限)
1.git config --system user.name xxx
:设置用户名,信息记录在项目/.git/config
文件中
2.git config --system user.email xxx@xxx.com
:设置邮箱地址,信息记录在项目/.git/config
文件中
创建与克隆命令
1.git init
:将当前目录初始化为本地仓库,信息记录在隐藏的.git文件夹中
2.git init -b <branch_name>
:初始化本地仓库的同时创建分支branch_name
3.git clone xxx@xxx.com:xxx/XXX.git
:将远程仓库XXX下载到当前目录下
添加与提交命令
1.git add <file>
:将
2.git commit -m "备注信息"
:将暂存区的内容提交到当前分支
查询与浏览命令
1.git diff <file>
:当工作区有改动、暂存区为空时,对比工作区与最后一次commit的共同文件;当工作区有改动、暂存区不为空时,对比工作区与暂存区的共同文件。
2.git status
:显示工作目录和暂存区的文件状态
3.git status -s
:精简显示文件状态
4.git status --ignored
:列出被忽略的文件
5.git log
:查看当前分支的历史版本记录
6.git log --oneline
:用列表的形式查看历史版本记录
7.git reflog
:查看HEAD指针的移动历史(包括被回滚的版本)
8.git branch
:查看所有分支和当前所处分支
常用:git log --graph --pretty=format:"%h %s"
:以图形化的方式展现提交历史,每个提交记录显示短格式的提交id和备注
撤销与重置命令
1.git rm <file>
:从工作区和暂存区(索引)中删除文件,并将删除操作记录到暂存区(准备提交)
2.git rm --cached <file>
:删除暂存区文件,Git将不再跟踪和管理该文件,但工作区仍保留该文件(提交后,
3.git rm -f <file>
:删除工作区和暂存区文件,并且将这次删除放入暂存区(见相关链接)
4.git restore --staged <file>
:将文件从暂存区撤回到工作区
5.git checkout -- <file>
或 git restore <file>
:将文件恢复到当前分支的最新提交HEAD所记录的状态
6.git commit --amend
:修改最后一次提交
7.git commit --amend -m "备注信息"
:修改最后一次提交的备注
8.git revert <commit_id>
:用于“反做”某一个版本,即用一次新的commit来回滚之前的commit,此次提交之前的commit都会被保留
9.git reset HEAD
:回退暂存区里的所有文件,比如误add所有文件,可执行该命令将所有此次修改的file退回到工作区
10.git reset HEAD <file>
:回退暂存区里的某个文件,比如误add单个文件,可执行该命令只撤销该文件
11.git reset --hard HEAD^
或 git reset --hard HEAD~
:将代码库回滚到上一个版本
12.git reset --hard HEAD^^
:往上回滚两次,以此类推
13.git reset --hard HEAD~100
:往上回滚100个版本
14.git reset --hard <commit_id>
:回滚到指定提交,删除工作目录中的所有更改,包括暂存区和工作区的修改
15.git reset --soft <commit_id>
:回滚到指定提交,保留工作目录和暂存区中的修改,并将这些修改标记为未暂存状态
16.git reset –-mixed <commit_id>
:此为默认方式,回滚到到指定提交,保留工作目录中的修改,但将它们标记为未暂存状态,同时清空暂存区
远程仓库
1.git remote add origin xxx@xxx.com:xxx/XXX.git
:将本地仓库关联到远程仓库(origin为远程仓库的默认名称)
2.git remote rm <remote_name>
:从本地仓库中删除指定的远程仓库
3.git push -u(第一次需要-u以后不需要)
:将当前分支推送到远程仓库
4.git push origin <branch_name>
:将本地<branch_name>分支的所有提交推送到远程仓库的同名分支
5.git push -u origin <branch_name>
:将本地<branch_name>分支的所有提交推送到远程仓库的同名分支,并将该分支设置为跟踪远程分支
6.git push -d origin <branch_name>
:删除远程仓库的branch_name分支
7.git fetch
:从远程获取最新版本到本地,不会自动merge
8.git pull
:从远程获取最新版本到本地,并自动merge
9.git pull origin <branch_name>
:将远程仓库的branch_name分支与本地仓库的当前分支合并
注意:git pull
相当于 git fetch
+ git merge
分支与合并命令
1.git branch <branch_name>
:创建新分支
2.git branch
:查看所有分支和当前所处分支
3.git branch -r
:查看远程分支
4.git branch -a
:查看所有分支
5.git branch -d <branch_name>
:删除本地仓库的branch_name分支
6.git branch -u origin/<branch_name1> <branch_name2>
:将远程的branch_name1分支与本地的branch_name2分支对应
7.git checkout -
:切换到前一个分支
8.git checkout <branch_name>
:切换到branch_name这个分支
9.git checkout -b <branch_name>
:创建并切换到branch_name这个分支
10.git checkout -t origin/<branch_name>
:将远程的branch_name分支拉取到本地
11.git checkout tags/<tag-name>
:切换到
12.git merge <branch_name>
:将分支branch_name合并到当前分支上
13.git cherry-pick <branch_name>
:将分支branch_name的最新提交转移到当前分支上
14.git cherry-pick <commit_id>
:将指定的提交转移到当前分支上,支持一次转移多个提交(空格分隔)
15.git cherry-pick <commit_id1>..<commit_id3>
:将某分支上的commit_id1到commit_id3转移到当前分支上(左开右闭)
16.git rebase source_branch
:将当前分支变基到source_branch的最新提交上
17.git rebase -i <commit_id>
:对commit_id之后的提交进行合并、重新排序等操作(见相关链接)
注意:git checkout -b <branch_name>
相当于 git branch <branch_name>
+ git checkout <branch_name>
stash暂存命令
1.git stash
:将工作区和暂存区中尚未提交的修改存入栈中
2.git stash apply
:将栈顶存储的修改恢复到当前分支,但不删除栈顶元素
3.git stash pop
:将栈顶存储的修改恢复到当前分支,同时删除栈顶元素
4.git stash drop
:删除栈顶存储的修改
5.git stash list
:查看栈中所有元素
相关链接:
Git远程操作详解 - 阮一峰的网络日志
【Git】checkout 用法总结 - 简书
Git撤销&回滚操作(git reset 和 get revert) - 腾讯云
Git恢复之前版本的两种方法reset、revert(图文详解) - CSDN博客
Git:移除文件----git rm命令的使用 - CSDN博客
git rebase详解(图解+最简单示例,一次就懂) - CSDN博客
【git 整理提交】git rebase -i 命令详解 - CSDN博客
git rebase原理和使用 - 博客园
Git rebase合并多条commit记录 - CSDN博客
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构