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

常用git命令

目录

1、常用git命令

2、git merge 和 git rebase 的区别

3、获取远程仓库数据命令 git fetch 和 git pull的区别

 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 分支名   //合并分支

2、git merge 和 git rebase 的区别

  • git merge

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

        冲突测试:

        

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

  • git rebase

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

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

3、获取远程仓库数据命令 git fetch 和 git pull的区别

  • git fetch

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

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

 4、git reset 和 git revert 的区别 

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

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

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

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


http://www.kler.cn/a/281458.html

相关文章:

  • AI模型:追求全能还是专精?详细阐述
  • Nginx负载均衡中的连接升级至SSL:配置指南与最佳实践
  • 米哈游(原神)一面算法原题
  • 草莓引领AI新潮流:OpenAI的猎户座时代,或是GPT-5即将到来
  • 如何让ChatGPT说话更像人类
  • 我们的营销策略总是难以吸引到合适的客户,怎么办?
  • RSA非对称性加密02: 加密redis的连接密码(下)-私钥加密,公钥解密
  • Qt QCustomPlot画色阶图
  • 汇编知识MOV,MRS,MSR,PUSH和POP指令
  • TinaSDKV2.0 自定义系统开发
  • 机器学习概述,深度学习,人工智能,无监督学习,有监督学习,增量学习,预处理,回归问题,分类问题
  • Python数据采集与网络爬虫技术实训室解决方案
  • MHA(mysql高可用架构)
  • 刷题DAY19
  • 存储实验:基于华为存储实现存储双活(HyperMetro特性)
  • 【功能自动化】使用HTMLTestRunner生成测试报告
  • 浅谈【数据结构】链表之单链表
  • 惠海H6900B升压恒流调光IC芯片3.7V7.4V12V升压18V24V36V 48V 植物灯/电解水
  • 利用命令模式实现一个手游后端架构的方法总结
  • EXCEL试题