当前位置: 首页 > news >正文

web-上传项目文件夹到Git远程仓库

Git初识

概念:一个免费开源,分布式的代码版本控制系统,帮助开发团队维护代码

作用:记录代码内容,切换代码版本,多人开发时高效合并代码内容

检验成功

  • 打开bash终端(git专用)
  • 命令:git -V(查看版本号)

 Git配置用户信息

配置:用户名和邮箱,应用在每次提交代码版本时表明自己身份

命令:

 掌握Git仓库

Git仓库(respository):记录文件状态内容的地方,存储着修改的历史记录(.git文件夹)

创建:

  1. 把本地文件夹转换成Git仓库:命令git init
  2. 从其他服务器上克隆Git仓库

需求:创建一个空白的Git仓库

Git的三个区域

Git使用时:

工作区:实际开发时操作的文件夹

暂存区:保存之前的准备区域(暂存改动过的文件)

版本库:提交并保存暂存区中的内容,产生一个版本快照

命令作用
git add 文件名暂存指定文件
git add .暂存所有改动过的文件按
git commit -m "注释说明"提交并保存,产生版本快照

git ls-files获取放在暂存区中的文件

 Git文件状态

Git文件2种状态:

  • 未跟踪:新文件,从未被Git管理过
  • 已跟踪:Git已经知道和管理的文件
文件状态概念场景
未跟踪(U)从未被Git管理过新文件
新添加(A)第一次被Git暂存之前版本记录无此文件
未修改('')三个区域统一提交保存后
已修改(M)工作区内容变化修改了内容产生

使用:修改文件,暂存,提交保存记录,如此反复 

需求:新增css文件,并使用git status -s查看文件状态,并最终提交 

第一列是暂存区状态,第二列是工作区状态

Git暂存区使用

暂存区:暂时存储,可以临时恢复代码内容,与版本库解耦

暂存区->覆盖->工作区,命令:git restore 目标文件(注意:完全确认覆盖时使用

从暂存区移除文件,命令:git rm --cached 目标文件

查看暂存区内的文件:git ls-files

练习-登陆页面

需求:新增JS代码并暂存提交产生新的版本快照

步骤

  1. 新增JS文件和内容
  2. 临时存放在暂存区
  3. 提交保存到版本库 

Git回退版本

查看提交历史:git  log --oneline

回退命令:

git reset --soft 版本号(其他文件未跟踪)

git reset --hard 版本号

git reset --mixed 版本号 (与git reset等价)

注意1:只有记录在版本库的提交记录才能恢复

注意2:回退后,继续修改->暂存->提交操作即可(产生新的提交记录过程)

查看完整日志:git reflog --oneline

 删除文件

需求:删除editor.js文件,并产生一次版本记录

步骤:

  1. 手动删除工作区文件
  2. 暂存变更/手动删除暂存区文件造成变更
  3. 提交保存

总结:工作区只要改变,都可以暂存提交产生新记录

忽略文件

概念:.gitignore文件可以让git彻底忽略跟踪指定文件

目的:让git仓库更小更快,避免重复无意义的文件管理

例如:

  1. 系统或软件自动生成的文件
  2. 编译产生的结果文件
  3. 运行时产生的日志文件,缓存文件,临时文件等
  4. 涉密文件,密码,秘钥等文件

创建:

  1. 项目根目录新建.gitignore文件
  2. 填入相应配置来忽略指定文件

注意:如果文件已经被暂存区跟踪过,可以从暂存区移除即可

分支

概念:本质上是指向提交节点的可变指针,默认名字是master

注意:HEAD指针影响工作区/暂存区的代码状态

场景:开发新需求/修复BUG,保证主线代码随时可用,多人协同开发提高效率

例如:在现有代码上创建新分支宛城内容列表业务,或者突然需要紧急修复BUG-单独创建分支解决Bug

需求:创建内容列表content分支,并产生3次提交记录

步骤:

  1. 创建分支命令:git branch 分支名
  2. 切换分支命令:git checkout 分支名
  3. 工作区准备代码并暂存提交,重复3次

git branch查看当前有哪些分支

 练习-登录bug修复

需求:新建login-bug分支,做两次提交记录(对手机号长度,验证码长度做判断)

步骤:

  1. 切回到主分支:git checkout master
  2. 创建新分支:git branch login-bug
  3. 切换新分支:git checkout login-bug
  4. 修改代码,暂存,提交产生版本记录

 分支-合并和删除

需求:把login-bug合并回到master分支并删除logh-bug分支

步骤:

  1. 切回到要合入的分支上:git checkout master
  2. 合并其他分支过来:git merge login-bug
  3. 删除合并后的分支指针:git branch -d login-bug

分支-合并与提交

 合并提交:发生于原分支产生了新的提交记录后,再合并回去时发生,自动使用多个快照记录合并后产生一次新的提交

步骤:

  1. 切回到要合入的分支上:git checkout master
  2. 合并其他分支过来:git merge content
  3. 删除合并后的分支:git branch -d content

注意:提交记录的顺序按照产生的先后顺序排列,而非合并的先后顺序

分支-合并冲突

需求1:基于master新建publish分支,完成发布文章业务,然后修改内容页面的html文件的title标签,并提交一次 

需求2:切换到master,也在修改内容页面的html文件的title标签,并提交一次

冲突:把publish分支合并到master回来,产生合并冲突

概念:不同分支中,对同一个文件同一部分进行修改,Git无法干净的合并,产生合并冲突

解决:

  1. 打开VSCode找到冲突文件并手动解决
  2. 解决后需要提交一次记录

Git常用命令

命令作用注意
git -v查看git版本
git init初始化git仓库
git add 文件标识暂存某个文件文件标识以终端为起始的相对路径
git add .暂存所有文件
git commit -m '说明注释'提交产生版本记录每次提交,把暂存区内容快照一份
git status查看文件状态-详细信息
git status -s查看文件状态-简略信息第一列时暂存区状态,第二列是工作区状态
git ls-flies查看暂存区文件列表
git restore从暂存区恢复到工作区如果文件标识为.则恢复所有文件
git rm --cashed 文件标识从暂存区移除文件不让git跟踪文件变化
git log查看提交记录-详细信息
git log --oneline查看提交记录-简略信息版本号 分支指针 提交时说明注释
命令作用注意
git reflog --oneline查看完整历史 - 简略消息包括提交,切换,回退等所有记录
git reset 版本号切换版本代码到暂存区和工作区

--soft模式保留暂存区和工作区原本内容

--hard 模式不保留暂存区和工作区原本内容

--mixed 模式不保留暂存区,工作区保留(默认)

先覆盖到暂存区,再用暂存区对比覆盖工作区

git branch 分支名创建分支
git branch查看本地分支
git branch -d 分支名删除分支请确保记录已经合并到别的分支下,再删除分支
git checkout 分支名切换分支
git checkout -b 分支名创建并立刻切换分支
git merge 分支名把分支提交历史记录合并到当前所在分支

Git远程仓库

概念:托管在因特网或其他网络中的你的项目的版本库

 作用:保存版本库的历史记录,多人协作

创建:公司自己服务器/第三方托管平台(Gitee,GitLab,GitHub)

 需求:创建远程版本库

步骤:

  1. 注册第三方托管平台网站账号
  2. 新建仓库得到远程仓库Git地址
  3. 本地Git仓库添加远程仓库原点地址 命令:git remote add 远程仓库别名 远程仓库地址
  4. 本地Git仓库推送版本记录到远程仓库 命令:git push -u 远程仓库别名 本地和远程分支名

Git远程仓库-克隆

克隆:拷贝一个Git仓库到本地,进行使用

命令:git clone 远程仓库地址

效果:在运行命令所在文件夹,生成work项目文件夹(包括版本库,并映射到暂存区和工作区) 

 注意1:Git本地仓库已经建立好和远程仓库的链接

注意2:仓库公开随意克隆,推送需要身为仓库团队成员

多人协同开发

命令作用注意
git remote add 远程仓库别名 远程仓库地址添加远程仓库地址别名唯一,地址是.git结尾的网址
git remote -v 查看远程仓库地址
git remote remove 远程仓库别名删除远程仓库地址
git pull 远程仓库别名 分支名拉取完整写法:git pull 远程仓库别名 远程仓库分支名:本地分支名等价于:git fetch 和git merge
git push 远程仓库别名 分支名推送

完整写法:git push 远程仓库别名 本地分支名:远程分支名 -u:建立通道后以后可以简写git push

git clone 远程仓库地址克隆从0得到一个远程的Git仓库到本地使用

git pull --rebase 远程仓库别名 分支名

合并没有关系的记录

 

相关文章:

web-上传项目文件夹到Git远程仓库

Git初识 概念:一个免费开源,分布式的代码版本控制系统,帮助开发团队维护代码 作用:记录代码内容,切换代码版本,多人开发时高效合并代码内容 检验成功 打开bash终端(git专用)命令…...

使用OpenPCDet训练与测试Transformer模型:如何加载自己的数据集

引言 Transformer架构因其强大的序列处理能力和长距离依赖捕捉能力,在自然语言处理领域取得了巨大成功。近年来,这一架构也被引入3D物体检测领域,如Voxel Transformer等,显著提升了模型在复杂场景下的检测性能。OpenPCDet整合了多…...

四舍五入问题

单纯输出四舍五入可以用 printf("%.nf",num); 但是这个方法有时候会出错 代表输出n位四舍五入小数 而将数四舍五入赋值给变量可以用round()函数 a round(num); 表示将num四舍五入赋值给a 但是这么些只能转换位四舍五入的整数 可以改…...

零基础入门学用Arduino 第一部分(三)

重要的内容写在前面: 该系列是以up主太极创客的零基础入门学用Arduino教程为基础制作的学习笔记。个人把这个教程学完之后,整体感觉是很好的,如果有条件的可以先学习一些相关课程,学起来会更加轻松,相关课程有数字电路…...

C++标准库random

random 完整文档看这里 三步走: 选择一种随机数种子选择一个随机数引擎选择一个随机数分布输出 随机数种子 //生成随机数种子,在Linux的实现中,是读取/dev/urandom设备 std::random_device rd; unsigned seed1 rd();// 获取当前时间点作为随机数种子 unsigned seed2 std:…...

电子电气架构——车载诊断DTC一文通

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 没有人关注你。也无需有人关注你。你必须承认自己的价值,你不能站在他人的角度来反对自己。人生在世,最怕的就是把别人的眼光当成自己生活的唯一标…...

Golang | Leetcode Golang题解之第129题求根节点到叶节点数字之和

题目: 题解: type pair struct {node *TreeNodenum int }func sumNumbers(root *TreeNode) (sum int) {if root nil {return}queue : []pair{{root, root.Val}}for len(queue) > 0 {p : queue[0]queue queue[1:]left, right, num : p.node.Left, …...

工业信息化SCI期刊,中科院1区TOP,IF=12.3,收稿范围广泛

一、期刊名称 IEEE Transactions on Industrial Informatics 二、期刊简介概况 期刊类型:SCI 学科领域:工程工业 影响因子:12.3 中科院分区:1区TOP 三、期刊征稿范围 IEEE工业信息学汇刊是一本多学科期刊,发表技…...

Spring Boot整合Redis

Spring Boot整合Redis Spring Boot 整合 Redis 是一种常见的做法,用于在 Spring Boot 应用程序中添加缓存、会话管理分布式锁等功能。 浅谈Redis Redis用于存储数据,且在内存当中进行存储。 但是在日常编写代码时,定义一个变量也就是属于在内…...

kafka的leader和follower

leader和follower kafka的leader和follower是相对于分区有意义的,不是相对于broker。 因为每个分区都有leader和follower, leader负责读写数据。 follower负责复制leader的数据保存到自己的日志数据中,并在leader挂掉后重新选举出leader。 kafka会再…...

git 空仓库笔记

标识身份,建议先完成 Git 全局设置 git config --global user.name “账号” git config --global user.email “email” 方式一:克隆仓库 git clone https://url/your.git cd your_path touch README.md git add README.md git commit -m "add …...

字母异位词分组(charyw)

字母异位词分组 题目描述 给定一个字符串数组&#xff0c;将字母异位词组合在一起。字母异位词指字母相同&#xff0c;但排列不同的字符串。 输入格式 第一行正整数n&#xff0c;表示有n个字符串(1<n<1000) 第二行n个字符串&#xff0c;空格隔开 输出格式 多组字母…...

力扣 41.缺少的第一个正整数

题目描述&#xff1a; 给你一个未排序的整数数组 nums &#xff0c;请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,0] 输出&#xff1a;3 解释&#xff1a;范围 …...

Git从入门到放弃

由于我的Git学的不太好&#xff0c;所以为了能够将以后我的学习笔记能够整理的更好&#xff0c;我先要系统的学习一下git&#xff0c;文章由此产生。 文章笔记源自尚硅谷Git入门到精通全套教程视频内容 1 进入官网 学习新技术的第一步需要熟悉官网&#xff0c;Git也不例外。ht…...

003.数据分析_PandasSeries对象

我 的 个 人 主 页&#xff1a;&#x1f449;&#x1f449; 失心疯的个人主页 &#x1f448;&#x1f448; 入 门 教 程 推 荐 &#xff1a;&#x1f449;&#x1f449; Python零基础入门教程合集 &#x1f448;&#x1f448; 虚 拟 环 境 搭 建 &#xff1a;&#x1f449;&…...

【介绍下什么是Kubernetes编排系统】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…...

linux防止nmap扫描

1、首先关闭Centos7自带的firewalld [rootnode ~]# systemctl disable firewalld.service && systemctl stop firewalld.service 2、安装iptables服务 [rootnode ~]# yum install iptables-services iptables-devel -y [rootnode ~]# systemctl enable iptables …...

基于SpringBoot的装饰工程管理系统源码数据库

如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解决一些老技术的弊端问题。因为传统装饰工程项目信息管理难度大&#xff0c;容错率低&#xff0c;管…...

2024前端面试准备2-JS基础知识回顾

变量类型和计算 1.值类型和引用类型的区别 常见值类型:undefined(定义undefined只能用let,不能用const)、字符串、bool、number、 Symbol; 常见引用类型: 对象, 数组、null(特殊引用类型,指针指向为空地址) 、function(特殊引用类型); 值类型的值直接存储在栈中;引用类型值存储…...

C++ 环形链表(解决约瑟夫问题)

约瑟夫问题描述&#xff1a; 编号为 1 到 n 的 n 个人围成一圈。从编号为 1 的人开始报数&#xff0c;报到 m 的人离开。下一个人继续从 1 开始报数。n-1 轮结束以后&#xff0c;只剩下一个人&#xff0c;问最后留下的这个人编号是多少&#xff1f; 约瑟夫问题例子&#xff1a;…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python&#xff5c;GIF 解析与构建&#xff08;5&#xff09;&#xff1a;手搓截屏和帧率控制 一、引言 二、技术实现&#xff1a;手搓截屏模块 2.1 核心原理 2.2 代码解析&#xff1a;ScreenshotData类 2.2.1 截图函数&#xff1a;capture_screen 三、技术实现&…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”&#xff0c;无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息&#xff1a; 关注测试号&#xff1a;扫二维码关注测试号。 发送模版消息&#xff1a; import requests da…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

FFmpeg 低延迟同屏方案

引言 在实时互动需求激增的当下&#xff0c;无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作&#xff0c;还是游戏直播的画面实时传输&#xff0c;低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架&#xff0c;凭借其灵活的编解码、数据…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析

Linux 内存管理实战精讲&#xff1a;核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用&#xff0c;还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...

20个超级好用的 CSS 动画库

分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码&#xff0c;而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库&#xff0c;可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画&#xff0c;可以包含在你的网页或应用项目中。 3.An…...