常用git命令

embedded/2024/10/15 18:12:19/

目录

git%E5%91%BD%E4%BB%A4-toc" style="margin-left:40px;">1、常用git命令

git%20merge%20%E5%92%8C%20git%20rebase%20%E7%9A%84%E5%8C%BA%E5%88%AB-toc" style="margin-left:40px;">2、git merge 和 git rebase 的区别

git%20fetch%20%E5%92%8C%20git%20pull%E7%9A%84%E5%8C%BA%E5%88%AB-toc" style="margin-left:40px;">3、获取远程仓库数据命令 git fetch 和 git pull的区别

git%20reset%20%E5%92%8C%20git%20revert%20%E7%9A%84%E5%8C%BA%E5%88%AB%C2%A0-toc" style="margin-left:40px;"> 4、git reset 和 git revert 的区别 


1、常用git命令

  •  git init          //初始化本地仓库
  •  git status   //查看文件状态
  • git diff    //显示工作目录中当前文件与暂存区的差异。
  • git diff --cached   //显示暂存区中文件与最后一次提交的差异。
  • git log   //查看提交的历史记录
  • git add .  //添加所有修改过的文件到暂存区
  • git add 文件名   // 添加指定文件到暂存区
  • git commit -m "提交名"   //提交暂存区的文件到本地仓库,并给本次提交取个名字
  • git checkout .   //  用暂存区中的文件覆盖工作区,即撤销工作区所做的所有修改
  • git reset HEAD .    // 用本地仓库的文件覆盖暂存区中的
  • git checkout HEAD .    // 用本地仓库的文件覆盖暂存区和工作区
  • git reset --soft commit编号    //将 HEAD 指向指定的提交,但保留暂存区和工作区的提交的状态,只删除本地仓库中的提交。(比如说有三次提交,我执行这个命令并且编号为第一次提交的编号,那么最后显示的提交信息就只有第一次提交了,但是之前做的修改还保留在暂存区和工作区),如下图:

  

  • git reset --hard commit编号   // 将 HEAD 指向指定的提交,并删除暂存区和工作区的提交状态,使其与 HEAD 一致。(将修改的代码撤销,并且把提交的记录也删掉,即三个区里面的修改都被撤销了
  • git remote add origin 远程仓库地址    //连接远程仓库
  • git tag   //创建一个标识指向当前提交
  • git branch -av   //查看当前分支信息
  • git branch dev   //创建名为dev的分支
  • git checkout dev  //切换到dev分支

  • git checkout -b 分支名    //创建分支并切换为当前分支 ( 等价于 git branch 分支名 + git checkout 分支名)

  • git merge 分支名    //将指定分支与当前分支合并
  • git rebase 分支名   //合并分支

git%20merge%20%E5%92%8C%20git%20rebase%20%E7%9A%84%E5%8C%BA%E5%88%AB">2、git merge 和 git rebase 的区别

  • git merge

    • 将两个分支合并成一个,创建一个新的合并提交(merge commit),这个提交会包含两个分支的共同祖先以及两个分支的最新提交。
    • 它保留了分支的历史和提交顺序。

        冲突测试:

        

出现上面这种冲突你也可以不撤销合并,直接去代码中挑选保留哪一部分代码也行:

  • git rebase

    • 将一个分支上的提交重新应用到另一个分支上,而不是创建一个新的合并提交。
    • 它改变了历史,将提交重新排序和应用到新的基线上。

使用 git rebase 出现冲突时解决方法和merge差不多 :

git%20fetch%20%E5%92%8C%20git%20pull%E7%9A%84%E5%8C%BA%E5%88%AB">3、获取远程仓库数据命令 git fetch 和 git pull的区别

  • git fetch

    • 用于从远程仓库获取最新的数据,包括分支和提交,但不会自动合并到本地分支。
    • 它将远程分支的更新下载到本地,但不会改变本地的工作目录。
  • git pull

    • 用于从远程仓库获取数据并自动合并到当前的本地分支。
    • 它实际上是 git fetch 后跟 git merge 的简写。

git%20reset%20%E5%92%8C%20git%20revert%20%E7%9A%84%E5%8C%BA%E5%88%AB%C2%A0"> 4、git reset 和 git revert 的区别 

后面都是直接跟某次提交的编号,

总的来说就是git reset 是回到你指定的那个提交,但是如果这个项目你已经分享给团队了而且有人已经在这个提交上做了修改的话,你再回到这次提交里面就会包含了别人修改的内容,这就是改变历史。

而使用git revert 是新建一个提交,这个提交会撤销掉你指定的提交的修改,也就是不会往你之前的提交里面加东西,所以它是不会改变历史的。

  • push origin master:master   //将本地master分支推送到远程的master分支


http://www.ppmy.cn/embedded/102706.html

相关文章

Neo4j - CQL简介

简述 CQL 代表密码查询语言。就像 Oracle 数据库有查询语言 SQL,Neo4j 有 CQL 作为查询语言。 Neo4j CQL 是 Neo4j 图形数据库的查询语言。是一种声明性模式匹配语言。遵循类似 SQL 的语法。语法非常简单并且是人类可读的格式。 像 Oracle SQL Neo4j CQL 具有执…

深入了解搜索引擎蜘蛛:从定义到最新技术应用

撰写一篇关于搜索引擎蜘蛛的详细文章,需涵盖从基础概念到未来趋势的多个方面。以下是根据您提供的大纲撰写的长篇文章,适合用于了解搜索引擎蜘蛛的重要性及其在现代互联网中的作用。 1. 引言 在互联网的浩瀚世界中,搜索引擎就像是庞大的图书…

71 OSPF多区域实验(华三)

HCIE认证体系 一 网络结构图(OSPFv2) 这个网络结构图为基准后期会常用到主要是(OSPF BGP ISIS OSPFV3 BGP4+ ISISV6) 二 需求 利用OSPF实现全网互通

JAVA之MAC详解以及子线程MDC传递

MDC简介 MDC(Mapped Diagnostic Context)是用于分布式系统中跟踪和诊断日志的重要概念。是一个在Java项目中用于日志跟踪的工具,它允许你在多线程环境下关联和传递特定的上下文信息。 MDC是一个线程本地的、可维护的、可传递的上下文环境。在Java中,MDC…

Spring-MVC

1.1 mvc思想,前端控制器,springmvc概述,配置版spring mvc程序 MVC思想 MVC概念:模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范,将业务逻辑、数据、显示分离的方式来组织代码 MVC…

39. 数组中出现次数超过一半的数字

comments: true difficulty: 简单 edit_url: https://github.com/doocs/leetcode/edit/main/lcof/%E9%9D%A2%E8%AF%95%E9%A2%9839.%20%E6%95%B0%E7%BB%84%E4%B8%AD%E5%87%BA%E7%8E%B0%E6%AC%A1%E6%95%B0%E8%B6%85%E8%BF%87%E4%B8%80%E5%8D%8A%E7%9A%84%E6%95%B0%E5%AD%97/READM…

Websocket笔记

Websocket笔记 文章目录 Websocket笔记标准握手请求REQRES 数据帧格式格式解析 标准 RFC6455 https://datatracker.ietf.org/doc/html/rfc6455 握手请求 REQ GET /chat HTTP/1.1 Host: example.com Upgrade: websocket Connection: Upgrade Sec-WebSocket-Key: dGhlIHNhbXB…

MyBatis的学习————下篇

目录 一、动态SQL 简介 1、if标签 2、where标签 3、trim标签 4、choose、when、otherwise 5、foreach 5.1、批量删除 5.2、批量添加 6、sql标签 二、MyBatis的缓存 1、一级缓存 2、二级缓存 3、二级缓存的相关配置 4、MyBatis缓存查询的顺序 5、 第三方缓存EHCac…