一文教会女朋友学会日常Git使用!Git知识总结

文章目录

    • 一文教会女朋友学会日常Git使用!Git知识总结
      • 一、git基本知识了解
        • 1.git简介
        • 2.git区域了解
        • 3.git常用命令
      • 二、常用工作场景
        • 1.克隆远程仓库,把仓库代码拉到本地
        • 2.推送代码到远程仓库
          • (1)本地代码和远程仓库版本相同,在你之前没有其他人推上代码
          • (2)在你之前有其他人推上代码,但是和你修改的不是同一个文件
          • (3)在你之前有其他人推上代码,和你修改的有同一个文件
          • (3)在a分支修改了,但是我要修改的内容应该在b分支上
      • 三、Git图形工具推荐
        • 1.vscode上自带的
        • 2.Soucetree

一文教会女朋友学会日常Git使用!Git知识总结

女朋友最近在学习git这块知识,我给他推荐了视频和廖雪峰的git文档,但是奈何新手刚开始学习,还是依然吃力,而日常工作中git这一部分使用其实并不难,所以也为了减轻女朋友的压力,这篇文章来了。

本文章涉及原理较少,主要是日常工作中直接使用,适合新手快速入门,如何想详细全面了解,还是推荐廖雪峰git讲解

一、git基本知识了解

1.git简介

Git是一个分布式版本控制系统,简单来说就是代码版本控制系统,在日常工作中,开发人员就需要利用git将各个人的写的代码放到一起。再简单来说,就是用来提交代码的。

2.git区域了解

区域这块主要便于后续操作理解,主要分成下面四个区域

  • 工作区:处理工作的区域(即做项目打代码的区域,你写代码的地方)
  • 暂存区:已完成的工作临时存放区域,等待被提交(使用git add .操作后代码进入区域)
  • 本地仓库:存放数据的地方,但是还在本电脑上(使用git commit -m "xxx"操作后代码进入区域)
  • Git远程仓库:最终的存放区域,即远程服务器(git push成功后代码推送的地方,就是代码仓库,比如Gitee、GitHub上建的仓库)

下面这张图比较直观,可以做参考

image-20240328141101581

3.git常用命令

连接远程仓库

git remote add xxx(例如:git remote add origin 复制的ssh地址或者https地址)

克隆远程仓库

git clone xxx(例如:git clone 复制的ssh地址或者https地址)

创建分支并切换到该分支

git checkout -b 分支名称相当于 git branch dev git checkout dev

切换分支

git checkout develop

添加到暂存区

git add .

添加到本地仓库

git commit "...."

拉取远程仓库内容

git pull (例如:git pull origin dev 最新的提交从origin/dev抓下来,然后,在本地合并,解决冲突 再推送)

推送到远程仓库

git push (例如:git push origin dev 上传到dev分支仓库)

备份当前的工作区修改的内容

git stash  备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。

读取最近一次备份的内容

git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复

二、常用工作场景

1.克隆远程仓库,把仓库代码拉到本地

这里以码云为例复制shh或者https

image-20240401134113463

执行下面克隆命令即可

git clone git@gitee.com:typhome/pinball-games.git

克隆到本地,就可以进行本地代码修改了

2.推送代码到远程仓库

推送代码到远端分为几种情况

(1)本地代码和远程仓库版本相同,在你之前没有其他人推上代码

这时执行三步骤即可

git add .git commit "...."git push
(2)在你之前有其他人推上代码,但是和你修改的不是同一个文件

这个时候需要先把别人的代码拉下来了,先进行git pull

git pullgit add .git commit "...."git push
(3)在你之前有其他人推上代码,和你修改的有同一个文件

这个时候直接git pull会报错,具体详细可以看我另一篇博客:解决git pull时出现冲突无法pull的问题

主要方法就是将代码提到git栈中进行储藏,然后拉下代码后再应用,

主要步骤

git stashgit pullgit add .git stash pop 
(解决冲突)
git add .git commit "...."git push
(3)在a分支修改了,但是我要修改的内容应该在b分支上

这个时候在a分支修改了,没有提交,直接切换到b分支上会报错切换不了,这个时候也需要用到stash了

//先进行备份
git stash
//切分支
git checkout b
//拉下最新代码
git pull
//再应用推送即可
git add .git stash pop
(解决冲突)
git add .git commit "...."git push

以上几种情况基本满足日常工作需求,主要就是代码拉取和推送

三、Git图形工具推荐

平常敲命令可能过于麻烦,或者不那么直观,这里推荐两个我常用的,提高开发效率,但是建议在git命令熟悉后或者使用一段时间后,再使用图形界面操作git

1.vscode上自带的

image-20240401142403154

可以看修改代码对比、切换分支、提交、stash等等,也是非常直观方便

2.Soucetree

image-20240401143104695

Soucetree是我最常用的git图形界面了,相比于vscode自带的更直观了,对于分支的操作更方便。

我认为唯一不足的就是修改代码对比,soucetree只显示修改行对比,而vscode的左右代码整个文件对比感觉更直观一点。

这两种方式具体操作这里不具体介绍了,大家自行百度即可。有什么看法也欢迎讨论~

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

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

相关文章

【微服务】Sentinel(流量控制)

文章目录 1.基本介绍1.Sentinel是什么2.Sentinel主要特性3.Sentinel核心功能1.流量控制2.熔断降级3.消息削峰填谷 4.Sentinel两个组成部分 2.Sentinel控制台显示1.需求分析2.下载3.运行1.进入cmd2.输入java -jar sentinel-dashboard-1.8.0.jar3.查看默认端口8080 4.访问1.账号和…

数据结构(一)----前导知识

目录 一.数据相关 1.数据元素与数据项 2.数据对象和数据结构 3.数据结构的三要素 (1)逻辑结构 (2)数据运算 (3)物理结构(存储结构) 4.数据类型和抽象数据类型 二.算法 1.算…

[数据结构]排序

本篇主要是对常见排序的分类和一些排序的详解 一、插入排序 1.直接插入排序 // 直接插入排序函数 void insertionSort(int arr[], int n) {int i, key, j;for (i 1; i < n; i) {key arr[i]; // 取出待排序的元素j i - 1;// 将大于key的元素向后移动一位while (j > 0…

Windows Server 2022 使用ApacheDS用户远程桌面登录服务器

Windows Server 2022 使用ApacheDS用户远程桌面登录服务器 1、接上篇 Windows Server 2022 使用ApacheDS用户认证 使用Administrator用户远程登录192.168.1.100windows server&#xff0c;打开pGina软件 2、输入刚刚在ApacheDS中的新添加的用户测试一下&#xff0c;会自动添加…

设计模式之抽象工厂模式精讲

概念&#xff1a;为创建一组相关或相互依赖的对象提供一个接口&#xff0c;而且无须指定他们的具体类。 抽象工厂模式是工厂方法模式的升级版本。在存在多个业务品种或分类时&#xff0c;抽象工厂模式是一种更好的解决方式。 抽象工厂模式的UML类图如下&#xff1a; 可以看…

C++教学——从入门到精通 4.setw()语句

这次玩点新鲜的------setw() 这家虎是啥呢&#xff1f; 我们编程输出的时候总是要输出空格&#xff0c;但有些时候又点的手都麻了 这时setw语句就派上用场了 具体怎么用呢&#xff1f; 如下图 #include"iostream"// #include"iomanip"// bits/stdc…

OSCP靶场--RubyDome

OSCP靶场–RubyDome 考点(CVE-2022-25765 suid ruby提权) 1.nmap扫描 ┌──(root㉿kali)-[~/Desktop] └─# nmap -Pn -sC -sV 192.168.249.22 --min-rate 2500 Starting Nmap 7.92 ( https://nmap.org ) at 2024-03-29 00:28 EDT Nmap scan report for 192.168.249.22 Hos…

配置文件乱码

1、改UTF-8 &#xff08;1&#xff09;已经创建的项目 (2)新项目也改一下

YOLOv9改进策略 :主干优化 | 极简的神经网络VanillaBlock 实现涨点 |华为诺亚 VanillaNet

💡💡💡本文改进内容: VanillaNet,是一种设计优雅的神经网络架构, 通过避免高深度、shortcuts和自注意力等复杂操作,VanillaNet 简洁明了但功能强大。 💡💡💡引入VanillaBlock GFLOPs从原始的238.9降低至 165.0 ,保持轻量级的同时在多个数据集验证能够高效涨点…

北京WordPress建站公司

北京wordpress建站&#xff0c;就找北京wordpress建站公司 http://wordpress.zhanyes.com/beijing

java--this关键字

this代表当前对象&#xff0c;this后面可以加&#xff1a; 1、属性--> this.属性&#xff1a; 当方法中的局部变量与成员变量名称相同时&#xff0c;成员变量必须用this&#xff0c;其它情况的this可以省略 2、方法--this.方法&#xff1a;静态方法中不能使用this关键字&…

非关系型数据库之Redis配置与优化

一、关系数据库与非关系型数据库 1.1关系型数据库 关系型数据库是一个结构化的数据库&#xff0c;创建在关系模型&#xff08;二维表格模型&#xff09;基础上一般面向于记录。SQL语句&#xff08;标准数据查询语言&#xff09;就是一种基于关系型数据库的语言&#xff0c;用…

求组合数I(acwing)

题目描述&#xff1a; 给定n组询问&#xff0c;每组询问给定两个整数a&#xff0c;b&#xff0c;请你输出Ca^b mod(1e97)的值。 输入格式: 第一行包含整数n。 接下来n行&#xff0c;每行包含一组a和b。 输出格式: 共n行&#xff0c;每行输出一个询问的解。 …

什么是ISP住宅IP?相比于普通IP它的优势是什么?

什么是ISP住宅IP&#xff1f; ISP住宅IP是指由互联网服务提供商&#xff08;ISP&#xff09;分配给住宅用户的IP地址。它是用户在家庭网络环境中连接互联网的标识符&#xff0c;通常用于上网浏览、数据传输等活动。ISP住宅IP可以是动态分配的&#xff0c;即每次连接时都可能会…

java基础动态代理和反射(一)-- 动态代理,反射,动态语言,静态语言

动态代理 代理&#xff1a;本来应该自己做的事情&#xff0c;却请来了别人来做&#xff0c;被请的人就是代理对象。动态代理&#xff1a;在程序运行过程中产生的这个对象。动态代理其实就是通过反射来生成一个代理。 import java.lang.reflect.InvocationHandler; import jav…

苹果推出Swift开发教程 无需编码知识小白也能学

简介 苹果推出Swift开发教程&#xff0c;教授开发者如何使用 Swift、SwiftUI 和 Xcode 开发 iOS 应用。从基本的界面设计到复杂的数据建模和空间计算。据苹果公司称&#xff0c;网站上提供的教程 "适合所有人"&#xff0c;即使是那些没有任何编码经验的人。教程提供…

让工作自动化起来!无所不能的Python

让工作自动化起来&#xff01;无所不能的Python 让工作自动化起来&#xff01;无所不能的Python编辑推荐内容简介作者简介前言为什么要写这本书读者对象如何阅读本书 博主 默语带您 Go to New World. ✍ 个人主页—— 默语 的博客&#x1f466;&#x1f3fb; 《java 面试题大全…

Java中常见的锁策略

目录 乐观锁 vs 悲观锁 悲观锁: 乐观锁&#xff1a; 重量级锁 vs 轻量级锁 ⾃旋锁&#xff08;Spin Lock&#xff09; 公平锁 vs 非公平锁 可重⼊锁 vs 不可重入锁 读写锁 乐观锁 vs 悲观锁 悲观锁: 总是假设最坏的情况&#xff0c;每次去拿数据的时候都认为别…

【DETR系列目标检测算法代码精讲】01 DETR算法03 Dataloader代码精讲

与一般的Dataloader的区别在于我们对图像进行了随机裁剪&#xff0c;需要进行额外的操作才能将其打包到dataloader里面 这一段的代码如下&#xff1a; if args.distributed:sampler_train DistributedSampler(dataset_train)sampler_val DistributedSampler(dataset_val, shu…

C语言动态内存讲解+通讯录2.0

文章目录 前文malloc和freecallocrealloc枚举常量的简单说明及使用 通讯录2.0动态开辟通讯录,满了就扩容保存数据和载入数据 通讯录2.0演示推荐好用的软件 前文 本文主要介绍动态开辟的几个函数,以及改进之前的通讯录。 我们局部变量等是在栈区上开辟空间的,而我们动态开辟的空…