GIT学习

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

1. GIT基础概念

工作区=>暂存区=>版本库
当前根目录下的文档以及文档的修改情况存放工作区提交的内容存放暂存区提交的内容,历史操作数据

2. GIT基本操作

本地仓库操作命令
查看工作区状态git status
查看版本库修改日志git log –pretty=oneline(单行显示)
查看操作命令历史git reflog
查看文件异同git diff fileName
工作区=》 暂存区git add fileName【stage指定文件】path【stage目录下所有untracked文件】
暂存区 =》 版本库git commit -m “commont”
工作区丢弃,恢复到暂存区或者版本库git checkout –fileName
修改版本库指针指向git reset versionId(HEAD~1) –hard
删除版本库文件git rm test.txt 因为本地的删除也是对文件的修改,要想真正的删除就只能用命令来删除,如果是误删本地文件,就使用git checkout test.txt来拉回来

3. 账号管理SSH Key

 为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的公钥都添加到GitHub,就可以在每台电脑上往GitHub推送了(当然每个电脑都有自己生成的私钥)。

GIT账号管理命令
创建SSH Keyssh-keygen -t rsa -C “youremail@example.com”

4. 远程仓库

  是本地的master分支和远程的master分支进行关联,并且将其称为origin分支。所以git remote命令显示的就是origin

GIT远程仓库管理命令
添加远程仓库到本地git remote add origin git@github.com:michaelliao/learngit.git
拉取远程指定仓库的指定分支到本地,并与之合并git pull <远程主机名> <远程分支名>:<本地分支名>
推送本地仓库master到origin(指向远程的master),第一次同步,真正的分布式版本库git push -u origin master
同步本地和远程相当于git push (origin master)

5. 分支管理

  首先必须明确的是当前工作区只能处于一种状态,即:当前切换到哪个分支,就是对该分支的修改,当前工作区就是为该分支服务。
  分支管理,为什么需要分支,假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。

 现在有了分支,就不用怕了。你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作。

 GIT分支原理,就是在原来的master指针指向的节点上再创建一个分支指针,例如dev,然后再将head指向dev,以后的推送都到了dev了,并且master指向一直不变,保持在了原来的节点。

GIT分支管理命令
创建一个新的分支并切换到它git checkout -b dev
创建一个分支git branch dev
切换到分支git checkout dev
查看分支(并标识当前分支)git branch
切换到指定分支git checkout master
合并指定分支到当前分支git merge dev
删除分支git branch -d dev

6. 冲突解决

 GIT冲突解决,为什么会出现冲突,当两个分支都进行了提交的时候,这时分支就真正的分离了开来,那么此时要想把两个分开的提交合并到一起的时候就会有冲突产生

冲突解决操作
解决冲突1.git diff 查看文件异同,打开文件找到异同点,修改文档并提交
2.git add conflctFile添加修改后文件
3.git commit 提交暂存区
4.git branch -d branchName删除分支
5.git log –graph –pretty=oneline –abbrev-commit查看历史记录(图形化查看)

7. GIT策略

  1. 禁用fast-forward策略
     一般会禁用掉fast-forward,这是因为如果分支没有进行提交,使用fast-forward的情况下,当分支合并后是看不到历史的。所以及时没有提交也是建议使用–no-ff参数来进行merge branch。
  2. bug分支的处理策略
     在接到临时任务并且当前任务没有完成的情况下,你并不想提交,怎么办,建议使用stash功能,git stash可以将当前工作区状态保存到一个地方,当你进行其他操作后,可以查看git stash list 查看stash保存过的内容。使用git stash apply恢复git stash drop来删除,或者直接使用git stash pop恢复的同时删除。可以多次stash,使用git stash apply stash@{0}恢复指定的stash。
  3. feature分支策略
      新功能的开发通用策略,
命令2.bug分支的处理策略
git stashstash当前工作区
git checkout branchName转到修改bug的分支
……进行一系列修改与提交合并
git stash list查看stash的工作区列表
git stash apply恢复stash
git stash drop删除stash
git stash pop弹出stash,apply的同时并且drop

命令3.GIT feature 分支策略
git checkout -b feature-vulcan创建并转到新功能开发的分支
git add vulan.py修改或者添加文件,并添加到暂存区
git checkout dev切换回dev分支,准备合并到之前的开发分支
试图进行合并到dev,合并当然是容易的git merge feature-valan,然后删除分支,但是这时接到了取消该特性的命令,新特性开发要弃掉,但是已经添加到暂存区
如果git branch -d feature-vulcan会提示没有合并,无法删除
git branch -D feature-vulcan如果想强行删除,则会丢掉feature-vulcan分支内容,但是可以让你继续在dev工作

8. GIT多人协作

命令
git remote [-v]查看远程仓库分支名 [详细信息]
git push origin master推送本地master分支到远程仓库
分支推送策略
master主分支,因此要时刻与远程同步;
dev开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;
bug本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug;
feature是否推到远程,取决于你是否和你的小伙伴合作在上面开发。

9. 分支管理

 同步本地分支与远程分支,创建与删除远程分支。

命令
重命名本地分支git branch -m devel develop
git push origin local_branch:remote_branch同步本地分支与远程分支。
local_branch本地分支;该分支不存在怎会删除远程分支
remote_branch,origin的remote_branch分支;该分支不存在则远程会创建

对于一般使用来说以上已经够用了


10. 标签管理

 标签其实就是版本库地一个快照。理解虚拟机的同学肯定理解快照功能。本质上也是一个commit指针,但是与分支指针比较起来它不可移动。所以可以commit内容到分支指针,却不可以提交到标签。

命令
查看本地taggit tag -n
添加本地taggit tag -a 8-4 -m ‘8-4 微信支付’
删除本地taggit tag -d <tagname>
查看远程taggit ls-remote –tags
获取远程taggit fetch origin tag <tagnam>
删除远程taggit push origin –delete tag <tagname>
推送本地分支到远程分支git push –tags

常见问题

  1. 远程分支与本地分支同步和合并方法。这样可以提前预知一下有哪些异同。
      通常的做法是
    1. 把远程仓库master分支下载到本地并存为tmp分支
      git fetch origin master:tmp
    2. 查看tmp分支与本地原有分支的不同
      git diff tmp
      这里主要是看看有没有其他的改动…
    3. 将tmp分支和本地的master分支合并
      git merge tmp
      这个时候呢,本地与远程就没有冲突了,而且还保留了我今天的代码,现在 Push就OK啦!
    4. 最后别忘记删除tmp分支
      git branch -d tmp

gitignore法则
#有一个需要注意的地方就是,gitignore要在没有add前设置才生效。

#所有后缀文件
*.gitignore
*.iml
#所有名为xxx的目录或文件
Redis-x64-3.2.100
.idea
.project
.settings
.svn
target
logs
redis-desktop-manager-0.8.8.384.exe
deploy
#当前目录下的文件或目录
/config
/zhjs/zhjs-web/
/zhjs/zhjs-web - 副本/

跟踪某个文件夹
!/plutommi/mmi
跟踪某类文件
!*.c
!*.h

跟踪某个指定文件
!/plutommi/mmi/mmi_features.h

修改最后一次提交:
gitaddforgottenfile git commit –amend

取消已经暂存的文件
git reset HEAD filename

取消文件的修改
git checkout – filename

从文件追踪和本地都删除
git rm file1

从文件追踪删除,本地不删除
git rm - -cached file1

预处理详解(三)—— 命令行定义 + 条件编译 + 文件包含 文章目录前言 前言 阅读详情

相关推荐

模拟IC版图DRC实战:手把手教你搞定MIM电容天线错误和ESD.10g违例

本文深入解析模拟IC版图中的MIM电容天线错误和ESD.10g违例问题,提供从错误解码到实战修复的完整指南。通过电路图修改、版图优化和验证闭环等步骤,帮助工程师高效解决DRC错误,特别适用于ADC等精密模拟电路设计。文章还分享了高级排错技巧和预防性设计策略,大幅提升流片成功率。

weixin_27697385的博客 293

如何学习git:git学习之路

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

2401_82411601的博客 934

STM32L151C8T6低功耗实战:RTC闹钟唤醒停机模式的配置与优化

本文详细介绍了如何在STM32L151C8T6微控制器上配置与优化RTC闹钟唤醒停机模式,以实现极致的低功耗设计。文章从核心原理出发,结合STM32CubeMX配置实战,深入讲解了进入停机模式前的关键准备工作、唤醒后的系统恢复流程,并分享了将功耗降至个位数微安级的深度优化技巧与常见问题解决方案。

weixin_29166013的博客 301

Git学习计划

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

战族狼魂的博客 802

trae使用playwright MCP方法流程

trae使用playwright MCP方法流程

MAILLIBIN的专栏 1677

Python RPA 流程自动化快速上手

Python RPA 流程自动化快速上手

看花容易绣花难 1万+

Git学习+Git在IDEA中使用

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

梓梓心的博客 2719

OpenCV实战系列——图像线条提取

基于内容的图像分析,需要从构成图像的像素集合中提取有意义的特征。轮廓、线条、区域等是基本的图像基元,可用于描述图像中包含的元素。本节将介绍如何提取重要的图像线条特征。

m0_58523831的博客 1万+

git学习

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

qq_44459787的博客 2万+

6万字嵌入式最全八股文面试题大全及参考答案(持续更新)

进程上下文定义:进程上下文包含了进程执行时所需的所有信息,包括 CPU 寄存器的值、内核栈、任务控制块(TCB)等。作用:当进程被切换时,需要保存当前进程的上下文,并恢复下一个将要运行进程的上下文。中断上下文定义:中断上下文是指处理中断时 CPU 所处的状态,包括中断发生时的寄存器值等。作用:当中断发生时,CPU 会自动保存当前的上下文信息,并跳转到相应的中断处理程序。示例表格上下文描述进程上下文包含进程执行时的所有相关信息中断上下文处理中断时 CPU 所处的状态线程同步定义。

大模型大数据攻城狮的专栏 7926

2.0 电子凸轮 西门子1500电子凸轮使用研究1

本文研究了S7-1500T电子凸轮同步控制技术,通过仿真实验得出以下结论:1)通过比例系数可调整凸轮曲线形状;2)解除同步需调用从轴其他运动指令;3)详细阐述了凸轮同步的5个实施步骤。重点分析了三种同步类型(主值距离同步、动态参数同步和直接同步)的特点及应用场景,并探讨了缩放系数、偏移量等参数对凸轮曲线的影响。同时介绍了凸轮应用模式及常见异常处理方法,为工程应用提供了重要参考。

qq_34047402的博客 809

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

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

悟鸣的技术博客 3211

RAP 语义键:让 UUID 世界变得可读、可导航、可校验

RAP 语义键的核心价值与实现要点 语义键(Semantic Key)是 ABAP RAP 模型中连接技术实现与业务体验的关键设计:通过为实体指定一组业务可读的标识字段(如订单号、物料编码等),在保持技术主键(如UUID)不变的同时,显著提升用户界面的可读性和导航体验。 主要优势: 提升UI可读性:Fiori元素会突出显示语义键字段,帮助用户快速识别关键业务数据 改善导航体验:OData URL会使用可读的语义键而非技术ID,便于分享和排查问题 降低沟通成本:业务人员能准确引用有意义的业务标识而非技术ID

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 153

git 学习网站

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

Stephen 602

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Git学习的最佳教程

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

szu030606的专栏 1611

VC中sqlite的使用

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

Git - 学习掌握Git的建议

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

guoqx的专栏 828

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

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 学习 —— 简单介绍

声明: 本文是以我自己学习Git的资料作为总结,希望可以对您有所帮助。 对于Git的学习,我们一定要分清楚几个概念,或者说几个分区:工作目录,暂存区,本地仓库以及远程仓。而学习和很多好的理解这里个概念对我们下面的讲解很重要,因为我们主要就是在这里个地方进行工作的,而我们的代码同样就是在这几个地方来回进行切换的。下面我们来讲解 上面就是这几个分区的关系,不过我...

静祥阁 369

Git 学习笔记

这篇记录记录了我在git学习中常常用到的指令,方便在未来进行查阅。此篇文章也会根据笔者的学习进度持续更新。

2302_79769914的博客 1505

git完整学习指南

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

qq_48107900的博客 1874

Git入门学习 - 好玩又能学习的好资源

关键词:Git,Github Git入门学习经验总结

D_super的博客 303

git学习网站

去年暑期实习接触的git ,然后找到了一个比较好的网站,但是实习后忘了网站名字,今天突然看到,记录下,也给想学git的人一个选择 这个是用图解,类似打游戏的形式,我玩着挺上头,就跟打游戏一样,找找攻略,肝几天就发现自己能通关了,哈哈哈 https://oschina.gitee.io/learn-git-branching/ ...

雾隐雾现的至渝博客 2万+

Git 学习网页

页面版Git学习: 链接

yuchunhai321的博客 204
上一篇: Kurento流媒体开发环境搭建流程
下一篇: 字符编码
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值