Git常用命令汇总

查看Git版本

git --version

配置Git

  • 默认情况下, 需要配置user.name和user.email用于标识是谁提交的代码
git config user.name 名字
git config user.email 邮箱
  • global配置全局
git config --global user.name 名字
git config --global user.email 邮箱
  • 取消配置(取消全局配置需要加上global)
git config --unset user.name
git config --unset user.email
  • 显示配置信息(查看全局需要加上global)
git config --list

配置别名

使用alias设置别名,例如,给status配置一个st别名

git config --global alias.st status

创建Git仓库

  • 使用init命令,初始化仓库
git init
  • 使用clone命令,克隆远程仓库
git clone 远程仓库地址

Git工作区域

git本地有三个工作区域,分别是:工作区、暂存区、本地仓库

加上git远程有四个工作区域:分别时:工作区、暂存区、本地仓库、远程仓库

  • 工作区:编码的区域
  • 暂存区:临时存放对文件改动的区域,暂存区用于直接跟工作区的文件进行交互,工作区文件的提交或回滚首选都是通过暂存区
  • 本地仓库:安全存放数据的地方,有提交的所有版本数据。其中HEAD指向最新放入的仓库版本
  • 远程仓库:与本地仓库相连接的另一台机器上的git仓库,用于代码交换
    quyu.png

本地仓库常用命令

显示当前仓库状态

git status

将工作区提交到暂存区(指定文件)

git add [file]

将工作区提交到暂存区(一次性提交)

git add .

如果文件在工作区被删除,那么将这个删除提交到暂存区

git rm [file]

将暂存区提交到本地仓库(不指定file则提交所有文件)

git commit [file] -m "描述"

查看提交记录

git log

每个commit都对应一个commit id,是一个40位的16进制的SHA-1散列编码,用来唯一标记一个commit

  • 可以添加 --pretty=oneline 参数来单行显示一个提交
  • 可以添加 --graph 参数为commit记录添加图形化显示,在显示分支情况时很有用
  • 可以添加 --abbrev-commit 参数来缩减要显示的提交记录

查看git操作历史

git reflog

显示当前仓库的操作记录,以及相关的commit id

丢弃工作区的修改

git restore [file]

该命令必须指定一个文件,将丢弃次文件的修改,文件将恢复到修改前的状态

git checkout -- [file]

该命令将丢弃该文件在工作区的修改,并让这个文件回到最近一次git commit或git add时的状态

文件对比

git diff [file]

该命令比较文件在暂存区和工作区的差异,如果不指定file,将显示所有文件的差异

可以使用--cached或--staged选项,显示暂存区和版本库中的差异

git diff --cached [file]
git diff --staged [file]

可以使用HEAD来比较工作区与版本库中的差异

git diff HEAD [file]

如果不想看所有的差异内容,则可以添加 --stat 来简化 git diff 的输出

git diff --stat HEAD [file]

比较两个commit之间的差异

git diff [commit_id_1] [commit_id_2] [file]

工作区

可以将工作区未提交的内容先暂存起来

git stash

暂存的工作区内容可以通过下面命令查看

git stash list

恢复工作区内容有两种方式

  • 使用git stash apply恢复,恢复后,stash内容并不会删除,需要使用 git stash drop 来删除
  • 使用git stash pop,恢复后,stash的内容也被删除了

远程仓库

创建SSH Key

一般的远程仓库,如:GitHub、GitLab等,与本地仓库之间的传输都是通过SSH加密的,所以在使用远程仓库前,需要设置SSH

  • 生成SSH Key
ssh-keygen -t rsa -C "邮箱"

生成完成后,可以在用户主目录下生成.ssh文件夹,文件夹里会有id\_rsa和id\_rs.pub两个文件

这两个文件就是SSH Key的密钥对,id\_rsa是私钥,id\_rsa.pub是公钥

将生成的公钥设置到远程仓库即可

添加远程仓库

git remote add origin "远程仓库地址"

该命令将添加名为 origin 的远程仓库,origin后面跟的是这个远程仓库的地址

一般情况下,都会默认远程仓库名为 origin ,也可以指定其他名称

一个本地仓库可以添加多个远程仓库

git remote add github "远程仓库地址"
git remote add gitee "远程仓库地址"

显示当前远程仓库信息

git remote -v

删除已绑定的远程仓库

git remote rm origin

该命令将删除名为origin的远程仓库

推送分支到远程仓库

git push origin mastar

该命令将推送master分支到远程仓库

拉取远程分支到本地

git checkout -b dev origin/dev

该命令将从远程仓库拉去dev分支到本地

关联本地分支和远程分支

git branch --set-upstream-to=origin/dev dev

该命令将本地的 dev 分支与远程的 dev 分支进行关联

分支相关命令

git中的分支其实像是一个指针,默认情况下,会有两个指针,一个是master默认分支,一个是HEAD,指向当前分支

显示当前分支

git branch

该命令显示当前仓库中的分支,其中前面有*号的是当前所在分支,可以使用-r或-a选项显示远程分支或所有分支

创建分支

git branch <name>

该命令只是创建了一个分支,但并不会将当前分支切换到新分支上去

切换分支

git switch <分支名>

该命令将当前分支切换到指定的分支,也可以使用checkout来切换分支

git checkout <分支名>

创建并切换到新分支

git switch -c <分支名>
git checkout -b <分支名>

合并其他分支到当前分支

git merge <分支名>

删除分支

git branch -d <分支名>

分支管理策略

image-20250325140831209.png

标签相关命令

标签总是和某个commit挂钩,可以理解为指向某个commit的指针

显示所有标签

git tag

创建标签

git tag <标签名>

在当前的提交上创建标签,标签名为后面的name指定,如果要在特定的commit上打标签,则可以使用下面命令

git tag <标签名> [commit_id]

上面的命令将在指定的 commit\_id 上创建名为 tag\_name 的标签

还可以创建带有说明的标签,用 -a 指定标签名,-m 指定说明文字

git tag -a <标签名> -m <message> [commit_id]

查看标签信息

git show <标签名>

删除标签

git tag -d <标签名>

因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除

推送标签到远程仓库

git push origin <标签名>

也可以一次性推送所有标签到远程仓库

git push origin --tags

删除远程标签

首先需要删除本地的指定标签

git tag -d <标签名>

然后推送删除到远程

git push origin :refs/tags/<标签名>
最后修改:2025 年 04 月 01 日
如果觉得我的文章对你有用,请随意赞赏