『Git』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博客

posted @   北岛孤影  阅读(47)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示