git 学习总结

文章目录

  • 一、 git 基础操作
    • 1、工作区
    • 2、暂存区
    • 3、本地仓库
    • 4、远程仓库
  • 二、git 的本质
  • 三、分支
  • git 命令总结

作者: baron

一、 git 基础操作

    如图所示 git 总共有几个区域 工作区, 暂存区, 本地仓库, 远程仓库.
在这里插入图片描述

1、工作区

存放项目代码的地方,他有两种状态 Unmodifymodify. ** Unmodify ** 表示当前的文件快照内容与本地仓库文件夹中完全一致. 没有任何修改

在这里插入图片描述

Unmodify 经过修改(modify)或者新增(add)文件, 就会变成 modify 状态.

在这里插入图片描述

modify 状态可以通过 git checkout恢复到Unmodify状态. 使用 git checkout README.md恢复这个文件的修改. 注意这个操作是不可逆的

在这里插入图片描述

modify 状态, 通过 git add添加到 暂存区, 使用 git add test.c添加 test.c 到暂存区

在这里插入图片描述

2、暂存区

暂存区是一个文件,保存了下次将提交的文件列表信息,一般在 Git 仓库目录中, 有时候也被称作“索引”. 通俗的将就是临时存放你的改动. 暂存区的文件通过 git reset将修改恢复到工作区的modify 状态.

在这里插入图片描述

暂存区的文件通过 git commit将修改同步到本地仓库

在这里插入图片描述

3、本地仓库

本地仓库, 存放所有的远程分支的代码, 用来和远程仓库进行交互, HEAD 指向当前所在的分支.本地仓库的代码通过 git push同步仓库到远程仓库.

在这里插入图片描述

本地仓库, 通过 git reset --soft回退到暂存区

在这里插入图片描述

4、远程仓库

远程仓库, 是指托管在因特网或其他网络中的你的项目的版本库. 通过 git fetch获取到远程代码.

在这里插入图片描述

拉到的代码通过 git merge合并到本地分支.

在这里插入图片描述

其中 git pull= git fetch+ git merge

二、git 的本质

    git 的本质就是一个文件状态记录工具, 用来记录当前目录及其子目录的状态.. 树状结构主要由提交(commits)目录树(trees)、和 文件(blobs)组成. 他们统一由哈希值进行描述. 一个由 40 个十六进制字符(0-9 和 a-f)组成的字符串.如下所示

在这里插入图片描述

    commit 用来描述根目录的状态, 也就是某个时间节点的整体的文件状态. 它包含、根目录信息(tree)父提交(parent)提交 id(author)提交信息(committer).

在这里插入图片描述

     树(trees) 表示目录, 通过 tree 形成树状结构连接所有的目录, 最后文件由 blobs 描述. 可以通过命令 git cat-file -p命令用来查看 git 中的对象的内容和结构. 从而跟踪整颗树的状态.

在这里插入图片描述

    commit 就是当前目录树的一种快照. 即拍下当前目录树的状态.

三、分支

    每一个 commit 就是一个文件快照, 分支就是一组 git commit 的结合, 可以通过命令 git log --oneline --decorate --graph --all 显示所有分支的提交历史. 第一次创建的分支默认为树根, 也就是第一个 commit. 以后的分支都在这分支的个基础上分叉.

在这里插入图片描述

    如图所示该仓库有两个分支分别为 maintest 分支. test 分支起始于 main 分支. 在 add a这个 commit 创建出 test 分支. 展开来就如下所示.

在这里插入图片描述

add b这个 commit 通过 git branch test创建出 test 分支, 使用 git checkout test切换到 test 分支. HEAD 是一个指针,指向当前活动的分支的最新提交(即“当前分支”). 它告诉 Git 当前工作目录和暂存区(index)是基于哪个分支的。如图所示 当前 HEAD 指向 test 分支的.

git 命令总结

命令含义
git init创建一个名为 .git 的子目录,这个子目录含有你初始化的 Git 仓库中所有的必须文件
git add将新增的文件(add)或者修改(modify)提交到暂存区
git commit -m 暂存区的文件提交到本地仓库
git push本地仓库的文件提交到远程仓库
git pull/git fetch/merge远程仓库的文件同步到本地仓库
git reset --soft将 commit 的修改回退到暂存区
git reset暂存区的内容回退到工作区的 modify/add 状态
git checkout回退工作区的修改(modify)或者新增(add)的文件, 这一步是不可逆
git status令查看哪些文件处于什么状态
git diff比较的是工作目录中当前文件和暂存区域快照之间的差异
git log查看历史提交
git log --stat 列出所有被修改过的文件、有多少文件被修改了以及被修改过的文件的哪些行被移除或是添加了
git log --pretty=format:"%h - %an, %ar : %s"列出姓名, 修改时间, 和第一条 commit
git log --pretty=format:"%h - %an, %ar : %s --since=2.weeks列出两周之前的提交
git log --pretty=format:"%h - %an, %ar : %s --after=2.weeks列出两周之后的提交
git commit --amend将暂存区中的文件提交, 并且合并覆盖上次提交
git cat-file -p命令用来查看 git 中的对象的内容和结构
git log --oneline --decorate --graph --all显示所有分支的提交历史
git remote -v列出远程仓库以及分支
git remote add <shortname> <url>添加一个远程仓库
git remote show某一个远程仓库的更多信息
git remote rename远程仓库重命名
git remote rm删除远程仓库
git branch -a打印出所有的远程分支
git branch创建新分支
git branch -b创建并切换到新分支
git checkout出了回退文件修改的功能, 后面跟分支名还能切换分支

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/50756.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue3时间选择器datetimerange在数据库存开始时间和结束时间

♥️作者&#xff1a;小宋1021 &#x1f935;‍♂️个人主页&#xff1a;小宋1021主页 ♥️坚持分析平时学习到的项目以及学习到的软件开发知识&#xff0c;和大家一起努力呀&#xff01;&#xff01;&#xff01; &#x1f388;&#x1f388;加油&#xff01; 加油&#xff01…

什么是埋点?前端如何埋点?

什么是埋点 “埋点” 是一种在应用程序或网站中插入代码的技术&#xff0c;用于收集用户行为数据或特定事件的信息。它是用于分析和监控用户行为、应用性能和其他关键指标的一种常用方法。通过在特定位置插入代码或调用特定的 API&#xff0c;开发人员可以捕获有关用户如何与应…

a,a,a【0】,a【0】,指针解析数组,用作(左值,右值)的区别

a&#xff0c;&a&#xff0c;a【0】&#xff0c;&a【0】&#xff0c;指针解析数组&#xff0c;用作&#xff08;左值&#xff0c;右值&#xff09;的区别

大数据-49 Redis 缓存问题中 穿透、雪崩、击穿、数据不一致、HotKey、BigKey

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

《GPT-4o mini:开启开发与创新的新纪元》

在科技发展的快速进程中&#xff0c;OpenAI 推出的 GPT-4o mini 模型如同一阵春风&#xff0c;给开发者们带来了新的希望和机遇。它以其卓越的性能和极具吸引力的价格&#xff0c;成为了行业内热议的焦点。 当我首次听闻 GPT-4o mini 的消息时&#xff0c;内心充满了好奇与期待…

解锁Conda配置的秘密:conda config --get命令全指南

&#x1f511; 解锁Conda配置的秘密&#xff1a;conda config --get命令全指南 Conda是一个功能强大的包管理器和环境管理器&#xff0c;它允许用户通过配置文件来自定义其行为。有时&#xff0c;了解当前的配置状态对于诊断问题、优化设置或确保环境的一致性至关重要。本文将…

Linux下学习Python包管理器Poetry教程 零基础入门到精通

Poetry [官网 - Poetry] https://python-poetry.org/ 安装 pip install poetry简单使用 初始化 poetry 项目 cd ~ && mkdir demo poetry init管理虚拟环境 poetry 预设了很多自己的虚拟环境配置&#xff0c;这些配置可以通过 poetry config 进行修改 当用户在执…

使用git工具管理泰山派内核源码目录及抽打补丁简易流程

目录 使用git工具管理泰山派内核源码目录及抽打补丁简易流程 一、使用git维护源码 二、git 常用的一些操作 三、抽补丁 四、打补丁 五、补充 使用git工具管理泰山派内核源码目录及抽打补丁简易流程 最近&#xff0c;在做linux开发的过程中入手了一块泰山派RK3566的开发板…

嵌入式初学-C语言-前言

概述 C语言是一种计算机编程语言&#xff0c;我们是利用代码来控制计算机的运行&#xff0c;从而达到某种目的&#xff0c;我们 就很有必要了解计算机的运行原理。 计算机组成 OS 应用程序 计算机硬件 基本组成&#xff1a; 输入设备&#xff1a;输入数据给计算机处理&…

详解Mysql InnoDB引擎 04

文章目录 1. InnoDB 简介2. 逻辑存储结构2.1 表空间 idb文件2.2 段2.3 区 1M2.4 页 16KB2.5 行 3. 架构3.1 内存结构3.1.1 Buffer Pool 缓冲池3.1.2 Change Buffer 更改缓冲区3.1.3 Adaptive Hash Index3.1.4 Log Buffer 3.2 磁盘结构 4. 后台线程5. 事务原理5.1 redo log 重做…

动态数据增强的艺术:Mojo模型的自定义应用

动态数据增强的艺术&#xff1a;Mojo模型的自定义应用 在机器学习和深度学习领域&#xff0c;数据增强是提升模型泛化能力的重要手段。Mojo模型&#xff0c;作为深度学习模型的一种封装形式&#xff0c;通常指的是通过训练得到的模型参数的集合&#xff0c;它能够被用于快速推…

运行python项目出现ModuleNotFoundError: No module named ‘sklearn‘问题

问题1&#xff1a;ModuleNotFoundError: No module named sklearn 1.WindowsR键&#xff0c;输入cmd&#xff0c;进入命令行窗口 2.安装sklearn&#xff0c;使用清华镜像安装&#xff1a; python -m pip install scikit-learn -i https://pypi.tuna.tsinghua.edu.cn/simple …

算法学习day22

一、函数的独占时间 给你一个进程数量&#xff0c;和运行日志。运行日志log的格式为:进程id:(start/end):运行时间 其中一个进程运行时可以被另一个优先级较高的进程抢占cpu。求每个进程独占cpu的时间。 输入&#xff1a;n 2, logs ["0:start:0","1:start:…

Spring Boot - 优雅实现支持通配符和IP段的IP访问黑白名单机制

文章目录 CodeIpAccessInterceptoraddInterceptor工具类配置文件 application.yml单元测试 Code 废话不多说&#xff0c;直接上码 IpAccessInterceptor package cn.cloud.bus.module.servicebus.framework.ipconfig;import cn.cloud.bus.module.servicebus.util.IpFilterUti…

深入理解计算机系统 CSAPP 家庭作业11.10

A: //home.html <form action"/cgi-bin/adder" method"GET"><ul><li><label for"n1">n1:</label><input type"text" id"n1" name"n1" /> //name的值决定页面提交后&#xf…

栈知识梳理和函数实现

参考此文章数据结构——栈&#xff0c;此文章写的更详细&#xff0c;由于我们都是学自于比特课程&#xff0c;这里做个自我备份&#xff0c;方便后续查阅、修改和补充。 栈知识梳理和函数实现 前言1.栈是什么&#xff1f;2.栈的接口实现2.1初始化栈2.2入栈2.3 出栈2.4 获取栈顶…

C语言图书信息管理系统

题目&#xff1a;图书信息管理系统 内容及主要功能描述&#xff1a; 该系统用于管理图书信息&#xff0c;包括图书的增加、删除、查找、修改、浏览、按出版社统计图书数量等功能。具体功能包括&#xff1a; 增加图书&#xff1a;输入图书信息并添加到系统中。删除图书&#x…

浅谈WebSerice

一. 什么是WebService Web Service也称为web服务&#xff0c;它是一种跨编程语言和操作系统平台的远程调用技术。Web Service采用标准的SOAP协议传输&#xff08;SOAP&#xff1a;Simple Object Access Protocol简单对象访问协议&#xff0c;soap属于w3c标准。并且soap协议是基…

C++ 算法:从基础到高级

C 算法&#xff1a;从基础到高级 C 是一种功能强大且高效的编程语言&#xff0c;广泛应用于系统编程、游戏开发、嵌入式系统以及高性能计算等领域。算法是程序设计的核心&#xff0c;掌握常用算法是成为优秀 C 程序员的必备技能。本文将介绍一些常用的 C 算法&#xff0c;从基…

【漏洞复现】phpStudy 小皮 Windows面板 存在RCE漏洞

靶场资料后台自行领取【靶场】 image-20240726092307252 PhpStudy小皮面板曝RCE漏洞&#xff0c;本质是存储型XSS引发。攻击者通过登录用户名输入XSS代码&#xff0c;结合后台计划任务功能&#xff0c;实现远程代码执行&#xff0c;严重威胁服务器安全。建议立即更新至安全版…