Git的学习

Git学习心得:从零到掌握的成长之路 通过Git的学习,我不仅掌握了一个工具,更理解了"版本控制思维"的价值——这种对工作过程进行系统性记录与管理的思维方式,完全可以迁移到论文写作、实验报告等学术场景。而AI工具的辅助,则像拥有了一位不知疲倦的导师,它不会直接给我答案,但总能提供突破思维瓶颈的线索。并且在我犹豫不决时,总可以看看ai是否有好的建议,并且可以随时向它提问,找到答案。未来,我计划将Git的使用延伸到更多领域:用Git管理LaTeX论文版本,用GitHub Pages搭建技术博客,甚至用Git记录机器学习实验过程。 阅读详情

Git

 概念:

​   是一个免费的、开源的分布式 版本控制系统。可以快速

版本控制:

​ 一种记录一个或若干文化内容变化,以便将来查阅特定版本修订情况的系统

​ 好处:

​ 可以将某个文件【甚至整个项目】回溯到之前的状态

​ 可以比较文件的变化细节,并且可查看最后谁进行修改。

  

 版本控制的分类:

  集中化的版本控制系统 [SVN]
    通过一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到该服务器,取出最新的文件或者提交更新。
    缺点:中央服务器的单点故障。

  分布式的版本控制系统[GIT]
    并不只是提取最新版本的文件快照,而是把代码仓库完整地镜像下来。因此该系统可以指定和若干不同的远端代码仓库进行交互。因此同一项目中分别和不同工作小组的人相互协作。

  

Git结构

  本地结构
在这里插入图片描述

  本地库和远程库地交互方式:

​       团队内部协作
在这里插入图片描述

​     跨团队写作
在这里插入图片描述

  因此需要 通过 代码托管中心来维护远程库

  

托管中心种类:

​ 局域网环境:可以搭建 GitLab服务器作为代码托管中心

​ 外网环境下:可以由GitHub或者Gitee作为代码托管中心

  

初始化本地仓库

【在Git中 命令与 Linux是一致的】

  
查看Git版本

git --version

  
设置签名

设置用户名 与 邮箱

git config --global user.name "xxx"
git config --global user.email "xxx"

[“xxx”:xxx处填写设置的内容]

  

本地仓库的初始化操作

git init

  

常用命令

add命令

​ 主要将本地库的文件提交到暂存区

命令行:

git add 文件名.后缀

eg:

​ 1.首先 创建一个 想要提交的文件

gitFile.txt

​ 2.使用 add命令 将暂存区的内容交到本地库

git add gitFile.txt

  

commit命令

​ 主要将暂存区的内容交到本地库

命令行:

git commit -m "备注信息" 文件名.后缀

将add命令中的文件提交至本地库

git commit -m "demo实例提交" gitFile.txt

不放在本地仓库的文件,Git是不对其进行管理。

即使在本地仓库的文件,Git依旧不对其进行管理。

只有通过add,commit命令操作才能将内容提交至本地库。

  

status命令

​ 主要用于查看工作区和暂存区的状态

命令行:

git status

eg:

创建一个文件并提交

git add "gitStatus.txt"

此时 git status将会查看到

Changes to be committed:
	(use "git restore --staged <file>..." to unstage)
		new file: gitStatus.txt

通过git commit之后,再对文件进行修改

git commit -m "status示例" gitStatus.txt

//修改gitStatus.txt内容 ...

此时 git status将会查看到

Changes not staged for commit:
	(use "git add <file>..." to update what will be committed)
	(use "git restore <file>..." to discard changes in working directory)
		modified: gitStatus.txt

  

log命令

  主要查看历史记录

命令行

git log

显示效果

commit xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx [commit 索引]
Author: xxx <xx@xx.com>					[上传人 邮箱]
Data: xx xx DD HH:MM:SS +xx				[时间]

  

其中当有多条数据时,会进行分页。

分页的标识 显示:

下一页:按一次空格键

上一页:b

结束:显示END

退出:q

  

其他形式展开日志

1.git log 前文的方式 由分页效果

2.git log --pretty=oneline

展现的结果

索引 + 备注

3.git log --oneline

展现的结果

索引前几个字段 + 备注

4.git reflog

展现的结果

索引前几个字段 +HEAD@{number} commit: 备注

其中 number 表示:指针当当前历史版本需要多少步

  

reset命令

​ 用于前进或者回退到某一个版本

命令行

git reset --参数 索引

效果:

​ 将版本操作到与索引版本一致

  

参数

1.hard参数

命令行

git reset --hard 索引

主要效果:

​ 在本地库指针移动的同时,将暂存区、工作区重置

2.mixed参数

命令行

git reset --mixed 索引

主要效果:

​ 在本地库指针移动的同时,将暂存区重置。但工作区保持不变。

3.soft参数

命令行

git reset --hard 索引

主要效果:

​ 仅移动本地库。暂存区、工作区都不变

eg:

​ 在操作时误操作 删除了某个文件。
  

找回删除的文件,实际就是把历史版本切换到最近有那个文件的版本。

git reset --hard 有该文件的版本索引

  

diff命令

​ 可以将工作区与暂存区的文件进行对比。

git diff 文件名

1.提交一个文件(diffFile.txt)到本地库。

2.在工作区中修改该文件的内容

3.此时便可以输入

git diff diffFile.txt

结果为:

diff --git a/diffFile.txt b/diffFile.txt
index xxx..xxx 23123
--- a/diffFile.txt
+++ b/diffFile.txt
@@ -1 +1 @@
-1111 [此处 - 为删除 上面-1是减少一行]
\ No newline at end of file
+2222 [此处 + 为添加 上面+1是加少一行]
\ No newline at end of file

多个文件的对比git diff

  

Git分支

什么是分支:

​ 在版本控制过程中,使用多条线同时推进多个任务。这里面说的是多条线,就是多个分支。

在这里插入图片描述

分支的好处:

​ 可以允许多个分支可以并行开发,互相不影响,提高开发效率。

​ 如果有一个分支功能开发失败,直接删除即可,不影响整体进度。

  

常见Git分支操作

查看分支
git branch -v
创建分支
git branch 新分支名
切换分支
git checkout 分支名

  

合并分支
git merge 分支名

冲突问题

  背景:

    1.branch_1 分支中 textFile.txt的内容被修改

​    2.branch_2 分支中 同样对该文件进行修改

​    3.在branch_1分支中想要合并branch_2分支中

【在大分支(branch_1)将合并分支(branch_2),首先要在大分支环境中】

git merge branch_2

此时会出现冲突

Auto-merging textFile.txt
CONFLICT(content):Merge conflict in textFile.txt   [表明该处出现冲突]
Automatic merge failed;fix conflicts and then commit the result.

.... (branch_1 |MERGING) [表明正在处于合并状态]

  

何时会出现冲突问题?

​ 都在用一个文件中同一个位置进行修改。

  

解决冲突方法

​ 1.商议适合需求的决策,保留所需的代码。

​ 2.将处理后的文件添加到暂存区中。add

​ 3.此时要进行commit操作。但需要注意的是不要带上文件,否则会报错。

git commit -m "merge files"

​ 4.此时就可以查看到 该分支状态不处于合并状态。

  

GitHub的相关操作

官网注册:GitHub

创建远程库

  1.在本地 将一个项目进行git init

  2.进入Github 的 ➕ 的 New repsitory
在这里插入图片描述

创建好后进入该远程库

在这里插入图片描述

HTTPS 和 SSH 。 主要作用是获取该远程仓库地址的方式

由于地址较长,每一次操作起来都不太高效。

因此有 别名 来提高效率。

起别名的命令:

git remote add 别名 地址

  

常见操作

克隆操作
git clone 远程库地址

当进行克隆操作时,还会完成

​ 1.初始化本地库

​ 2.将远程库的内容复刻到本地

​ 3.替我们创造远程库的别名

 

push 推送操作
git push 远程库的别名 推送的分支

eg:

git push repostion master

将本地master分支的内容提交的远程库的master分支(如果远程仓库没有mater分支,则会默认添加)

通常操作

​ 1.更新本地库 add commit

​ 2.push到远程库

git push 远程库 分支

 

pull操作

​ pull 约等于 fetch +merge 来完成远程库的拉取

git pull 远程库别名 远程库对应分支

1.抓取远程库

git fetch 远程库别名 远程库对应分支

执行抓取操作后,仅仅只是将远程库的内容下载至本地。工作区的文件仍是原来的内容。

2.此时可以在远程库查看内容是否正确

git checkout 远程库别名/远程库对应分支
ll

3.确定内容正确后,便可以进行合并操作。但需要将分支切换到本地分支上

进行合并

git merge 远程库别名/远程库对应分支

以上的操作都可以直接通过pull操作完成

 

协同开发合作时冲突的解决方法

1.角色:[Tom]

​ 向远程库推送文件add commit push

2.角色:[Jerry]

​ 进行一个pull操作,并修改了里面的文件。再次进行 推送

3.角色:[Tom]

​ 恰好与Jerry一样,对同一个文件进行操作,并且推送。

【此时则会出现冲突】

解决冲突的方法:

​ 1.先拉取远程库文件

git pull 远程库别名 远程库对应分支

2.修改冲突

​ 人为的进行删改

3.推送至远程库

git add 文件名
git commit -m "发生冲突问题时,切记不要带文件名"
CATIA V5新手必看:从零开始的界面导航与基础操作指南(附常见问题解决) 本文为CATIA V5新手提供全面的界面导航与基础操作指南,涵盖核心工作区解析、文件管理规范、视图操作秘籍及常见问题解决方案。通过详细的步骤说明和实用技巧,帮助用户快速掌握这一工业设计标杆软件,特别适合从SolidWorks、AutoCAD等软件过渡的用户。 阅读详情

相关推荐

实战指南:在摩尔线程GPU上部署AI模型的完整流程

本文提供了一份详尽的实战指南,手把手教你如何在摩尔线程GPU上成功部署AI模型。内容涵盖从驱动安装、Docker环境配置,到核心的代码适配与模型运行全流程,并分享了性能调优技巧与常见避坑方法,旨在帮助开发者高效利用国产硬件进行AI应用开发。

weixin_29271263的博客 541

Git基本使用(很详细)

详细的git教程,一直到连接远程仓库

qq_45796592的博客 15万+

C#调用Bartender打印标签,除了打印还能一键导出图片和PDF(附完整代码)

本文详细介绍了如何使用C#集成Bartender实现标签的多格式输出,包括打印、图片和PDF导出。通过完整的代码示例和实战技巧,帮助开发者解决分辨率适配、纸张尺寸控制等核心问题,提升工业自动化和物流管理中的标签处理效率。

weixin_31236101的博客 369

【git篇】git的使用

Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。集中式(SVN) VS 分布式(git)集中式版本控制系统,版本库是集中存放在中央服务器的,工作时要先从中央服务器取得最新的版本,完成工作后,再把自己的文件推送给中央服务器。集中式版本控制系统在工作时需要联网。分布式版本控制系统没有“中央服务器”,每个人的电脑上都是一个完整的版本库,所以就不需要联网。

weixin_45842494的博客 3万+

CODESYS EtherCAT通讯断了怎么办?手把手教你用ST语言写状态监测程序(附完整代码)

本文详细解析了CODESYS平台下EtherCAT通讯中断的故障排查与恢复方法,通过ST语言编写状态监测程序实现链路监测、故障隔离和伺服恢复。文章包含完整代码示例,帮助工程师快速诊断EtherCAT网络问题,提升工业自动化设备的运行稳定性。

weixin_30919571的博客 209

STM32F103用软件I2C读取IP2366电量数据,实测避坑指南(附完整源码)

本文详细介绍了如何使用STM32F103的软件I2C驱动读取IP2366电池管理芯片的电量数据,包括GPIO初始化、I2C时序实现、关键延时优化及常见问题解决方案。通过实测避坑指南和完整源码,帮助开发者快速实现稳定的电量数据读取,适用于嵌入式电池管理系统开发。

weixin_33725722的博客 514

Git使用教程:最详细、最傻瓜、最浅显、真正手把手教!

Git使用教程:最详细、最傻瓜、最浅显、真正手把手教! 转 作者:爱编程_ 地址:https://blog.youkuaiyun.com/h8y0bDJVUkwE1LboZlE/article/details/86635415 导读:因为教程详细,所以行文有些长,新手边看边操作效果出乎你的预料。...

JoBo的博客 2万+

模电(十四)差分放大电路

目录 差分放大电路 双端输入双端输出 Q点分析 抑制共模信号 放大差模信号 双端输入单端输出 Q点分析 差模信号分析 共模信号分析 单端输入双端输出 单端输入单端输出 四种接法比较 具有恒流源的差分放大电路 差分放大电路的改进 差分放大电路 采用引入支流负反馈,温度补偿来克服零点漂移(温度变化,直流电源波动,元器件老化产生的输入电压为零,输出电压不为零的...

weixin_43674847的博客 2万+

一文带你学会Git的基本使用⭐⭐⭐(超简洁,避免冗余)

Git 是一个分布式版本控制系统,用于管理和跟踪代码或文件的变更。它可以记录文件的每一次修改,帮助开发者协作、管理代码版本、追踪项目历史,并在需要时恢复到之前的版本。Git 是开源的,由林纳斯·托瓦兹(Linus Torvalds)在 2005 年开发,最初用于 Linux 内核开发。如今,它广泛应用于各种软件开发项目中,尤其是在团队协作开发中。知道上述内容就行了。工作区是你当前正在进行开发和编辑文件的地方。它就是你的项目文件所在的目录,包含你正在修改、编辑、编写的所有文件。

a131529的博客 3万+

fNIRS 公开数据集整理

关注“心仪脑”查看更多脑科学知识的分享。 关键词:数据整理、fNIRS 之前我们向大家推送了 Public Neuroscience Dataset 系列主题的第一期:《EEG公开数据集》,我们同时意识到大家对于神经科学公开数据集的需求。本期是该系列主题的第二期,我们在延续第一期初衷的基础上,整理了功能性近红外光谱(fNIRS)技术的公开数据集。 fNIRS 是一种非侵入性、便携且价格低廉的光学神经成像技术,它具有可观的空间和时间分辨率。因fNIRS技术问世较EEG晚了许多,所以应用此技术开展研究发.

psybrain的博客 4272

S7-200SMART通过表格指令实现模拟量信号滑动平均值滤波的具体方法

S7-200SMART通过表格指令实现模拟量信号滑动平均值滤波的具体方法

Robot_PLC_HMI_Automation 6725

Git教程(快速上手,超详细)

文章目录版本控制Git环境配置Git基本理论Git项目搭建Git文件操作使用码云IDEA集成GitGit分支 版本控制 版本迭代:每次更新就会有新的版本,旧的版本需要保留。所以我们需要一个版本控制工具帮助我们处理这个问题 版本控制(Revision control)是一种在开发的过程中用于管理我们对文件,目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。 简单说就是用于管理多人协同开发项目的技术。 常见的版本控制工具 主流的版本控制器有如下这些: Git(分布

weixin_48152652的博客 12万+

《从零搭建Vue3项目实战》(AI辅助搭建Vue3+ElemntPlus后台管理项目)零基础入门系列第一篇:开发环境准备

vue3入门实战:环境准备篇

感谢阅读 1385

如何学习git:git学习之路

Git熟练度 = 基础概念理解 × 实际操作次数 × 解决问题经验最重要的三点:不要急:Git是一个需要时间沉淀的技能多实践:理论再好,不如动手操作一次敢试错:Git的设计很安全,大胆尝试各种命令开始你的Git学习之旅吧!🚀记住:每个Git大师都是从第一次git init开始的。你的Git学习之路,就从今天开始!

2401_82411601的博客 934

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Git学习计划

这篇文章介绍了Git的1V1教学计划,分为理论学习(前3周)和实践操作(后2周)两大部分。理论学习包括Git基本概念、核心术语解析和配置方法;实践操作涵盖基本开发流程和分支管理。每周设定明确的学习目标、内容、方法和任务,如概念总结、思维导图绘制、实际操作记录等。计划强调通过文档阅读、视频学习和项目实践相结合的方式,系统掌握Git的版本控制功能,最终要求对所学内容进行全面复习和总结,并建议进一步学习高级功能。整体安排循序渐进,理论与实践并重。

战族狼魂的博客 802

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Git学习+Git在IDEA中使用

打开git命令窗口右键 ->创建git信息获取Git仓库在本地初始化初始化 手动创建仓库文件夹 -> 执行 git init从远程仓库克隆(常用) git clone 远程仓库地址。

梓梓心的博客 2719

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

git学习

此博客主要用于记录git学习过程中的知识点,以后遗忘的时候可以快速查询。主要学习资料为git的参考api以及B站网课。 系统地学习git这个想法其实是不久之前才萌生的。从大二的时候开始接触到git,只会最简单的git clone,git push,git pull。也一直只会add,commit,push三连。因为那个时候基本只是自己需要从开源网站上获取代码供自己直接使用,以及提交作业,所以学了基本的功能也没有仔细研究深入。这一问题在本学期期末的课设中被无限的放大了。 这一学期我们小组的课设是一个WEB.

qq_44459787的博客 2万+

学习Git的资料你想要的都在这里

一、背景 git 是开发中常见的版本管理工具,掌握好git可以说是现在工作的必备技能之一。 下面推荐一些好的配套网站和软件,以及个人推荐的提交规范。 二、学习资料 推荐几个非常不错的学习网站 官方图书和文档: https://git-scm.com/book/zh/v2 可以查看官方中文版的教程和下载PDF文档 https://git-scm.com/docs 菜鸟教程...

悟鸣的技术博客 3211

git 学习网站

跳转 这是个很好的学习git网站,值得拥有。

Stephen 602

Git学习的最佳教程

身为网页设计师或者网页开发者的你,可能已经听说过Git这个正快速成长的版本控制系统。它由GitHub维护;GitHub是一个开放性的、存储众人代码的网站。如果你想学习如何使用Git,请参考本文。在文章最后,我们罗列了其他Git学习资源。 1. Pro Git Pro Git是由Scott Chacon编写的免费在线图书,Scott现在是Git的开发人员。Pro Git有精彩的结构和一系列有组织

szu030606的专栏 1611

Git - 学习掌握Git的建议

为您整理了不同学习阶段和风格的 Git 优质课程资源,均来自社区广泛推荐,可放心学习。

guoqx的专栏 828

Git学习地址

Git学习地址

weixin_42631192的博客 205

git及github学习资源汇总

git及github学习资源汇总: git-book-zh-v2, git学习仿真沙盒 learn-git-branching等。

第七宇林的博客 460

git学习【完结】

​ 情况3:版本库存在最新版本的代码 xxx code,但是上一版不包含 xxx code,我们通常使用git进行版本控制的流程如下:工作区->(git add)->暂存区->(git commit)->版本库->(git push)->远程仓库,我们情况3撤销的前提是在commit之后没有进行push,撤销的目的就是不要影响远程仓库的代码。​ 因为创建,合并和删除分支非常快,所以Git鼓励你使用分支完成某个任务,合并后再删掉分支,这和直接在master分支上工作效果是一样的,但过程更安全。

qq_55317476的博客 1492

通过游戏式学习Git

简介 Learn Git Branching是一个游戏式关卡动画式学习Git的网站,之前一直想找一个以游戏式、关卡升级是的学习方法,这个就是,很好的,先上截图及连接。 image.png image.png [https://learngitbranching.js.org/?locale=zh_CN](https://learngitbranching.js.org/?loca...

web326的专栏 271

git完整学习指南

全面且新手友好的版本控制系统教程,涵盖从基础概念到高级应用的完整知识体系。

qq_48107900的博客 1874
上一篇: 运行时数据区之堆
code_Floyed
博客等级 码龄7年 3粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值