当前位置: 首页 > news >正文

【版本控制】git命令使用大全


        大家好,我是jstart千语。今天来总结一下git的使用命令,上文会先将git命令都列出来,便于快速寻找,然后还会对部分常用命令图文讲解,适合新手,让你快速地理解。最后还会总结在idea中使用git。如果有缺失的,欢迎反馈补充。右侧有目录栏哦。


如果需要了解在idea中如何使用git,可以看这篇博文,有详细的解答:

【版本控制】idea中使用git-CSDN博客


一、命令大全

1、总览

2、全局配置

global表示是全局配置;用户名和邮箱可以不是真实的,主要用在提交时标识记录

git config --global user.name "jstart"git config --global user.email "example@test.com"

 3、创建本地仓库

git init直接在本地的目录执行该命令,就会生成一个.git文件,就初始化完本地仓库了
git clone 远程仓库地址clone远程仓库,代码拉取下来后,会自动创建一个本地仓库,并且还会与远程仓库进行关联。

4、本地仓库命令

  • git status                                    查看工作区的文件状态
  • git add .                                       添加所有修改和新文件
  • git add <文件名>                          添加单个文件
  • git add -A                                      添加所有变动(包括删除)
  • git reset  文件名称                       将暂存区的文件取消暂存
  • git reset --hard 版本号                切换到指定版本
  • git commit -m "提交信息"           将暂存区的文件修改提交到本地仓库
  • git log                                           查看提交历史日志(仅显示当前分支的正式提交)
  • git reflog                  ​                    引用日志(显示所有 HEAD 的变更记录)

5、远程仓库命令

  • git remote -v(可选)                                            查看远程仓库
  • git remote add 仓库别名 远程仓库地址             关联远程仓库
  • git clon 远程仓库地址                                         克隆远程仓库
  • git pull 仓库别名 分支                                         从远程仓库拉取        
  • git push 仓库别名 分支                                       推送到远程仓库

6、分支操作

  • git branch                                    查看所有本地分支
  • git branch -r                                查看所有远程分支
  • git branch -a                                列出所有本地与远程分支
  • git branch 分支名称                     创建分支
  • git checkout 分支A                      切换到分支A
  • git checkout -b 分支A                  创建并切换到分支A
  • git push 仓库别名 分支名称         将该分支的代码推送到远程仓库
  • git merge 分支A                           将分支A合并到当前分支
  • git branch -d 分支名称                 删除该分支

7、标签操作

标签就相当于一个快照,类似发布的版本。

  • git tag                                           列出已有标签
  • git tag 标签名 -m "版本说明"       创建标签,-m属性可选
  • git push 仓库别名 标签名             将标签推送到远程仓库
  • git push 仓库别名 --tags             推送所有标签到远程仓库
  • git checkout -b 分支名 标签名      将该标签的代码拉取到指定分支,没有该分支就创建

8、撤销操作

  • git checkout -- 文件名         ​撤销未暂存的改动:
  • git reset HEAD 文件名        ​撤销暂存的改动
  • git reset --hard 版本号        彻底回退(丢弃后续提交)
  • git reset --soft 版本号          保留改动到暂存区 

9、其他

git stash        # 暂存当前修改
git stash pop    # 恢复最近一次暂存的修改

git log --oneline      # 简洁的提交历史
git log --graph        # 图形化显示分支合并
git log -p             # 查看提交的具体改动

git reflog            # 查看所有操作记录
git reset --hard 版本号  # 根据reflog找回丢失的提交

git reset --hard HEAD~1  # 回退到上一个提交(危险!会丢失当前提交)



二、图文讲解

开始之前还请了解一些基本概念

1、获取本地仓库

(1)本地初始化一个仓库:git init

执行命令:

 

(2)clone远程仓库:git clone 远程仓库地址

代码拉取下来后,会自动创建一个本地仓库,并且还会与远程仓库进行关联。



2、本地仓库操作

(1)查看工作区文件状态:git status

(2)添加到暂存区:git add

(3)提交代码到本地仓库:git commit

 注意:如果文件新增和修改后都要先添加到暂存区才能不知道文件修改,否则要指定文件名。

要提交多个文件时:

(4)取消暂存区:git reset

(5)查看日志:git log

(6)版本回退:git reset --hard 版本号

回退前:

回退后:

查看日志发现:问题就是如果回退到了之前的版本,使用git log查看不到后面版本的日志,不能返回较新的版本。

使用git reflog可以查看所有提交记录

回滚到较新版本:

查看日志



3、远程仓库操作

 (1)查看已关联的远程仓库:


(2)关联远程仓库

注意:当本地仓库没有关联别的远程仓库时,才可以进行关联远程仓库

 

示例: 


(3)克隆仓库,会自动关联远程仓库

克隆会将该仓库上的几乎所有数据(包括日志信息,历史记录等),

命令:git clone url


 (4)推送数据到远程:git push 别名 分支


(5)拉取git pull

 

场景示例:AB关联同一个远程仓库,并且开始时代码都相同,此时A修改了某个文件的代码并提交和推送。

B如何获取最新A修改的文件?

 

push后远程仓库更新,由B拉取最新修改的代码:



4、分支操作 

分支是Git使用过程中非常重要的概念。使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。 同一个仓库可以有多个分支,各个分支相互独立,互不干扰。
通过git init命令创建本地仓库时默认会创建一个master分支。


(1)查看分支:git branch

(2)新建分支:git branch 分支名字

(3)切换分支

(4)分支操作

切换到哪个分支在工作区看到的就是哪个分支的文件,在这个分支下对工作区进行操作。

 切换分支时:

(5)合并分支:git merge 分支名称

表示将指定分支的代码合并到当前分支

 (6)提交分支代码:git push 仓库别名 分支名称

a、当远程仓库没有该分支时,会自动创建一个分支

 b、推送代码

c、查看远程仓库: 

(7)删除分支:git branch -d 分支名称 



5、标签操作 

Git中的标签,指的是某个分支某个特定时间点的状态。通过标签,可以很方便的切换到标记时的状态。 比较有代表性的是人们会使用这个功能来标记发布结点(v1.0、v1.2等)。

(1)新建标签

(2)推送到远程仓库:

推送前:

推送后:

(3)检出标签

将该标签拉取到指定分支中

三、idea中使用git

请转移这篇博客,有具体的讲解:

【版本控制】idea中使用git-CSDN博客


http://www.mrgr.cn/news/98548.html

相关文章:

  • netty-socketio + springboot 消息推送服务
  • 爬虫框架 - Coocan
  • JWT令牌:实现安全会话跟踪与登录认证的利器
  • 解决PIP 安装出错ERROR: cp310-cp310-manylinux_2_28_x86_64.whl is not a supported wheel
  • webpack vite
  • 半导体设备通信标准—secsgem v0.3.0版本使用说明文档(1)之概述、如何安装及使用方法
  • 【Bluedroid】A2DP Sink播放流程源码分析(二)
  • VGA显示
  • vue3环境搭建、nodejs22.x安装、yarn 1全局安装、npm切换yarn 1、yarn 1 切换npm
  • Jenkins插件下载慢解决办法
  • RAGFlow本地部署教程 :多模态检索+动态生成,用AI重构企业知识生产力
  • 第3篇:深入 Framer Motion Variants:掌握组件动画编排的艺术
  • Android掉帧分析
  • 利用pnpm patch命令实现依赖包热更新:精准打补丁指南
  • hadoop执行sqoop任务找不到jar
  • HTTP HTTPS RSA
  • idea如何使用git
  • MCP服务,阿里云百炼,Cline,mysql-mcp-server,MCP通信原理
  • 【HD-RK3576-PI】定制用户升级固件
  • GPIO _OUTPUT-NORMAL 模式