Git之路

news2025/7/21 5:08:26

文章目录

    • 指南
    • 介绍
    • 实战
        • 任务一:sb项目
        • 任务二:idea实战
        • 任务三:分支实战(待续)

指南

如果你想在简历上写“会常用的Git的命令“,那么这篇文章值得你要看,那我们需要掌握什么呢?其实会简单的操作就行,需要再上网搜,平时自己实际用到的也就几个命令,克隆别人的,添加提交、推送自己的,冲突合并,回退版本。下面将使用一个非常非常简单的实战,没有安装git教程,也没有gitee注册创建添加SSH公钥教程,这些建议自行参看教程或者上网搜。

推荐教程:廖雪峰,教程是实战类的,还不错,个人觉得就是不突出重点,就是一个教程,我最近开始参加实习,才意识到抓住重点才是关键,而不是啥都学,例如你看那种java语言基础视频,学是学了很多,但你不知道关键的东西,所以总是容易忘,看了就那样,也不知道学了干嘛。

介绍

git是一个分布式版本管理系统,简单点说就是版本管理,例如你看到的gitee或github上的那些开源项目,有很多版本,而且一个项目能让很多人一起协同参与,这都是管理系统的功劳,而git就是其中一种。当然自己用还没有到这种高大上的操作,但是学了git,当不懂git的人还在gitee上下载zip时,你一顿git操作猛如虎,相信能给你装不少B.

实战

内容:掌握常用命令、push冲突处理、结合idea用于实际项目

任务一:sb项目

创建个空文件夹,叫sb,作为我们的项目。

mkdir sb
cd sb
# 创建a文件
touch a

1、初始化、查看仓库状态

git init
git status

2、添加文件到暂存区、提交

git add a
git commit -m '本地仓库首次提交'

💡暂存区就是还没提交

3、远程关联远程仓库、推送 fish

git remote add sb git@gitee.com:zhandiming/sb.git
git push sb master

4、查看远程库名称

git remote -v

5、查看分支情况

git log
# 以图形的方式查看
git log --graph

6、Zone忙活了一天,终于通过echo命令向a文件中写了一句经典的文字

echo "Hello Zone" > a

7、此时Tom正在gitee浏览他们的sb项目,看着空空的a文件,添加了一句代码,然后点击提交。
在这里插入图片描述
8、然后Zone检查了半天,觉得没问题,就提交并进行推送

git add a;
git commit -m "我是Zone,我在a文件中写入Hello Zone"
git push sb master

💡但发现拒绝推送,这就是冲突,其中提示的意思就是有个小可爱推送过了,你得把远程的拉下来进行合并,然后再提交

 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'git@gitee.com:zhandiming/sb.git'
提示......

9、拉取远程分支

git pull sb master

注意这里代码会自动合并,但是只是将远程和本地代码不同的地方放到一起,至于最终怎么处理,需要你手动进行合并,查看a文件就会发现如下内容

<<<<<<< HEAD
Hello Zone
=======
Hello World
>>>>>>> e3ab3a382ebf9ad7036f771d35840d95edc95b34

通过git status你也会发现a文件回到了工作区的状态,因为他需要你手动修改合并,然后再次提交、推送。这就是冲突。但是这种冲突只会出现在修改的地方是同一个文件,否则会自动合并,并不需要进行手动修改合并,后面会举例

10、于是Zone手动修改合并,然后提交推送

echo "Hello Zone" > a
git add a
git commit -m '我是Zone,由于合并冲突,我手动修改a文件'
git push sb master

至此,冲突就解决了。

11、过了几天,Tom又去gitee浏览他们的sb项目,看着a文件上咋写着"Hello Zone",有些不爽,但是善良的Tom又想着算了,自己创建一个不就行了,于是添加了b文件并提交
在这里插入图片描述

12、Zone今天突然想起还有Tom这个小可爱,于是在a中写入第二句话并提交、推送

echo "Hello Tom" >> a
git add a
git commit -m '我是Zone,我在a文件中添加Hello Tom'
git push sb master

💡推送时时,发现又被拒绝了,于是使用pull进行拉取

git pull sb master

这时会发现,会跳出页面让我们输入合并行为
在这里插入图片描述
如果直接保存退出,默认就是自动合并提交,然后提交的默认信息就是第一句,可自行编辑。
如果以#开头则会提示由于提交没有带消息(相当于没有-m),需要我们在本地进行手动提交,部分提示如下

error: Empty commit message.
Not committing merge; use 'git commit' to complete the merge.

总结:不同文件修改会自动合并,相同文件修改需要手动合并,后者才算真正的冲突。

任务二:idea实战

使用idea创建sb项目(maven或springboot都行),完成任务一,同时要求使用.gitignore排除无关文件的上传,例如.idea文件夹
💡实际开发中还是会直接用idea进行git管理,所以有必要掌握,而且很简单,就是得找到按钮。
在这里插入图片描述
出现冲突,idea可以用Update Project,而不是pull,对于不同文件的修改的合并,他会选择默认自动合并,而不是像命令行让你选,因为大部分情况确实是只需要自动合并。但相同文件就一样,需要点击界面进行修改。本质上也是pull,不过多了更多人性化处理,可通过控制台查看所使用的命令。

任务三:分支实战(待续)

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

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

相关文章

Matplotlib绘图-快速上手可视化工具

Matplotlib快速上手一、初识Matplotlib1.1 认识Matplotlib的图像结构1.2 绘制一个折线图二、给图像添加修饰2.1 自定义x的刻度2.2一图多线2.3一图绘制多个坐标系子图三、主流图形的绘制3.1绘制柱状图一、初识Matplotlib 是Python最常见的可视化工具之一 1.1 认识Matplotlib的…

csrf跨站请求伪造

文章目录csrf跨站请求伪造1、前戏2、csrf校验2.1、from表单如何符合校验2.2、ajax如何符合校验3、csrf相关装饰器FBVCBVcsrf跨站请求伪造 1、前戏 """ 钓鱼网站搭建一个跟正规网站一摸一样的界面&#xff08;中国银行&#xff09;用户进入到我们的网站&#x…

HyperLynx(三十)高速串行总线仿真(二)

高速串行总线仿真&#xff08;二&#xff09; 仿真实例 1.探索多层板中的PCI-E串行通道 2.设置叠层以减小损耗 3.分析通道的不同配置对损耗的影响 4.检测驱动端规范 5.检查接收器规范 6.通过仿真得出整个通道的驱动约束限制 1.探索多层板中的PCI-E串行通道 在本节练习中&…

人工智能学习:Microsoft COCO数据集读取(7)

Microsoft COCO&#xff08;Common Objects in Context&#xff09;是微软研发维护的一个大型的数据集。包含了30多万张图片和91个目标分类。可用于目标识别&#xff08;Object Detection&#xff09;、场景感知&#xff08;Penoptic Segmentation&#xff09;、语义分割&#…

【数据结构】——单链表

目录 1.链表 1.1 链表的概念及结构 1.2 链表的分类 1. 单向或者双向 2. 带头或者不带头 3. 循环或者非循环 1.3实现一个单链表&#xff08;无头单项非循环链表增删查改的实现&#xff09; 1.链表结构的创建 2.创建一个节点 3.创建一个链表 4.打印链表 5…

解读JVM级别本地缓存Caffeine青出于蓝的要诀 —— 缘何会更强、如何去上手

大家好&#xff0c;又见面了。 在前面的几篇文章中&#xff0c;我们一起聊了下本地缓存的动手实现、本地缓存相关的规范等&#xff0c;也聊了下Google的Guava Cache的相关原理与使用方式。比较心急的小伙伴已经坐不住了&#xff0c;提到本地缓存&#xff0c;怎么能不提一下“地…

软考 - 程序语言设计

程序设计语言基本概述 程序设计语言是为了书写计算机程序而人为设计的符号语言&#xff0c;用于对计算过程进行 描述、组织和推导。 低级语言&#xff1a;机器语言&#xff08;计算机硬件只能识别0和1的指令序列&#xff09;&#xff0c;汇编语言。 高级语言&#xff1a;功能…

从http请求过程分析为何不同业务的http请求都可以使用默认的缺省端口80,8080等

问题: http上传请求时url地址中一般无显示指定端口号&#xff0c;这时会使用默认的80端口&#xff1b;但是可能不止一个业务需要用到http请求&#xff0c;技术上web服务端那边肯定无法根据业务逻辑的数据格式去分别解析区分它们&#xff1b;因为业务是事先无法预知的&#xff…

【Spring Cloud实战】Consul服务注册与发现

个人博客上有很多干货&#xff0c;欢迎访问&#xff1a;https://javaxiaobear.gitee.io/ 1、简介 https://www.consul.io/docs/intro Consul is a service mesh solution providing a full featured control plane with service discovery, configuration, and segmentation f…

Flink-经典案例WordCount快速上手以及安装部署

2 Flink快速上手 2.1 批处理api 经典案例WordCount public class BatchWordCount {public static void main(String[] args) throws Exception {//1.创建一个执行环境ExecutionEnvironment env ExecutionEnvironment.getExecutionEnvironment();//2.从文件中读取数据//得到…

[附源码]java毕业设计基于Web留学管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Linux下C++开发笔记--编译静态链接库和动态链接库

目录 1--前言 2--生成静态链接库 3--生成动态链接库 1--前言 承接上一篇Linux下C开发笔记&#xff08;g命令的使用笔记&#xff09;&#xff0c;依据教程记录学习笔记。 2--生成静态链接库 ①回顾项目结构&#xff1a; ​ ②汇编&#xff0c;生成swap.o文件 cd srcg sw…

基于simulink的牛鞭效应模型建模与仿真

欢迎订阅《FPGA学习入门100例教程》、《MATLAB学习入门100例教程》 目录 一、理论基础 二、核心程序 三、测试结果 一、理论基础 牛鞭效应&#xff0c;是经济学中的一个术语&#xff0c;它也被称为需求放大效应。牛鞭效应指的是当信息流从最终客户端传输到原始供应商时&…

9.行为建模(Behavioral modeling)

9.1行为模型概述 Verilog行为模型包含控制模拟和操纵先前描述的数据类型变量的过程语句。这些语句包含在程序中。每个过程都有一个与其关联的活动流。活动开始于initial和always语句。每个initial语句和每个always语句都会启动一个单独的活动流。所有活动流都是并发的&…

【机器学习】线性分类【上】广义线性模型

主要参考了B站UP主“shuhuai008”&#xff0c;包含自己的理解。 有任何的书写错误、排版错误、概念错误等&#xff0c;希望大家包含指正。 由于字数限制&#xff0c;分成两篇博客。 【机器学习】线性分类【上】广义线性模型 【机器学习】线性分类【下】经典线性分类算法 1. 线…

C语言实现线索化二叉树(先序、中序、后序)

》》如何用C语言构建一颗二叉树? 第一种方法: ThreadTree A = (ThreadTree)malloc(sizeof(ThreadNode));A->data = { A };A->ltag = 0;A->rtag = 0;A->lchild = NULL;A->rchild = NULL;ThreadTree B = (ThreadTree)malloc(sizeof(ThreadNode));B->data =…

【python自动化】使用关键字驱动实现appium自动化

在写app自动化用例时&#xff0c;尝试用了关键字驱动的框架 记录一下自己对关键字驱动的理解&#xff1a; 1 关键字驱动指将用例步骤的操作封装为关键字&#xff0c;比如定位元素、点击元素、获取元素属性值、断言&#xff0c;这些都是操作关键字 2 在excel中按照用例执行过程&…

Java8方法引用和Lambda表达式实例源码+笔记分享

前言 Java8的lambda表达式&#xff0c;通过lambda表达式可以替代我们之前写的匿名内部类来实现接口。lambda表达式本质是一个匿名函数。 1、lambda表达式本质是一个匿名函数。 1 package com.demo.main;2 3 public class LambdaMain {4 5 public static void main(String[…

环辛炔衍生物DBCO-NH2,amine,Acid,NHS,Maleimide无铜点击反应

DBCO对叠氮化物具有非常高的反应选择性&#xff0c;可用于修饰生物分子&#xff0c;包括肽、蛋白质、酶、活细胞、整个生物体等。在生理温度和pH值范围内&#xff0c;DBCO基团不与胺或羟基反应&#xff0c;DBCO也与叠氮化物基团发生反应DBCO也称为ADIBO&#xff08;氮杂二苯并环…

2022.11.15-二分图专练

目录 50 years, 50 colors(HDU-1498) Uncle Toms Inherited Land*(HDU-1507) Matrix(HDU-2119) Arbiter(HDU-3118) [ZJOI2007]矩阵游戏(黑暗爆炸1059) Jimmy’s Assignment(HDU-1845) 50 years, 50 colors(HDU-1498) 原题链接:传送门 题意:一个n*n的矩阵中&#xff0c;…