web-上传项目文件夹到Git远程仓库
Git初识
概念:一个免费开源,分布式的代码版本控制系统,帮助开发团队维护代码
作用:记录代码内容,切换代码版本,多人开发时高效合并代码内容
检验成功
- 打开bash终端(git专用)
- 命令:git -V(查看版本号)
Git配置用户信息
配置:用户名和邮箱,应用在每次提交代码版本时表明自己身份
命令:
掌握Git仓库
Git仓库(respository):记录文件状态内容的地方,存储着修改的历史记录(.git文件夹)
创建:
- 把本地文件夹转换成Git仓库:命令git init
- 从其他服务器上克隆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代码并暂存提交产生新的版本快照
步骤
- 新增JS文件和内容
- 临时存放在暂存区
- 提交保存到版本库
Git回退版本
查看提交历史:git log --oneline
回退命令:
git reset --soft 版本号(其他文件未跟踪)
git reset --hard 版本号
git reset --mixed 版本号 (与git reset等价)
注意1:只有记录在版本库的提交记录才能恢复
注意2:回退后,继续修改->暂存->提交操作即可(产生新的提交记录过程)
查看完整日志:git reflog --oneline
删除文件
需求:删除editor.js文件,并产生一次版本记录
步骤:
- 手动删除工作区文件
- 暂存变更/手动删除暂存区文件造成变更
- 提交保存
总结:工作区只要改变,都可以暂存提交产生新记录
忽略文件
概念:.gitignore文件可以让git彻底忽略跟踪指定文件
目的:让git仓库更小更快,避免重复无意义的文件管理
例如:
- 系统或软件自动生成的文件
- 编译产生的结果文件
- 运行时产生的日志文件,缓存文件,临时文件等
- 涉密文件,密码,秘钥等文件
创建:
- 项目根目录新建.gitignore文件
- 填入相应配置来忽略指定文件
注意:如果文件已经被暂存区跟踪过,可以从暂存区移除即可
分支
概念:本质上是指向提交节点的可变指针,默认名字是master
注意:HEAD指针影响工作区/暂存区的代码状态
场景:开发新需求/修复BUG,保证主线代码随时可用,多人协同开发提高效率
例如:在现有代码上创建新分支宛城内容列表业务,或者突然需要紧急修复BUG-单独创建分支解决Bug
需求:创建内容列表content分支,并产生3次提交记录
步骤:
- 创建分支命令:git branch 分支名
- 切换分支命令:git checkout 分支名
- 工作区准备代码并暂存提交,重复3次
git branch查看当前有哪些分支
练习-登录bug修复
需求:新建login-bug分支,做两次提交记录(对手机号长度,验证码长度做判断)
步骤:
- 切回到主分支:git checkout master
- 创建新分支:git branch login-bug
- 切换新分支:git checkout login-bug
- 修改代码,暂存,提交产生版本记录
分支-合并和删除
需求:把login-bug合并回到master分支并删除logh-bug分支
步骤:
- 切回到要合入的分支上:git checkout master
- 合并其他分支过来:git merge login-bug
- 删除合并后的分支指针:git branch -d login-bug
分支-合并与提交
合并提交:发生于原分支产生了新的提交记录后,再合并回去时发生,自动使用多个快照记录合并后产生一次新的提交
步骤:
- 切回到要合入的分支上:git checkout master
- 合并其他分支过来:git merge content
- 删除合并后的分支:git branch -d content
注意:提交记录的顺序按照产生的先后顺序排列,而非合并的先后顺序
分支-合并冲突
需求1:基于master新建publish分支,完成发布文章业务,然后修改内容页面的html文件的title标签,并提交一次
需求2:切换到master,也在修改内容页面的html文件的title标签,并提交一次
冲突:把publish分支合并到master回来,产生合并冲突
概念:不同分支中,对同一个文件的同一部分进行修改,Git无法干净的合并,产生合并冲突
解决:
- 打开VSCode找到冲突文件并手动解决
- 解决后需要提交一次记录
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)
需求:创建远程版本库
步骤:
- 注册第三方托管平台网站账号
- 新建仓库得到远程仓库Git地址
- 本地Git仓库添加远程仓库原点地址 命令:git remote add 远程仓库别名 远程仓库地址
- 本地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)
字母异位词分组 题目描述 给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。 输入格式 第一行正整数n,表示有n个字符串(1<n<1000) 第二行n个字符串,空格隔开 输出格式 多组字母…...
力扣 41.缺少的第一个正整数
题目描述: 给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1: 输入:nums [1,2,0] 输出:3 解释:范围 …...
Git从入门到放弃
由于我的Git学的不太好,所以为了能够将以后我的学习笔记能够整理的更好,我先要系统的学习一下git,文章由此产生。 文章笔记源自尚硅谷Git入门到精通全套教程视频内容 1 进入官网 学习新技术的第一步需要熟悉官网,Git也不例外。ht…...
003.数据分析_PandasSeries对象
我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈 入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈 虚 拟 环 境 搭 建 :👉&…...
【介绍下什么是Kubernetes编排系统】
🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…...
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的装饰工程管理系统源码数据库
如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统装饰工程项目信息管理难度大,容错率低,管…...
2024前端面试准备2-JS基础知识回顾
变量类型和计算 1.值类型和引用类型的区别 常见值类型:undefined(定义undefined只能用let,不能用const)、字符串、bool、number、 Symbol; 常见引用类型: 对象, 数组、null(特殊引用类型,指针指向为空地址) 、function(特殊引用类型); 值类型的值直接存储在栈中;引用类型值存储…...
C++ 环形链表(解决约瑟夫问题)
约瑟夫问题描述: 编号为 1 到 n 的 n 个人围成一圈。从编号为 1 的人开始报数,报到 m 的人离开。下一个人继续从 1 开始报数。n-1 轮结束以后,只剩下一个人,问最后留下的这个人编号是多少? 约瑟夫问题例子:…...
【微信小程序】模板语法
数据绑定 对应页面的 js 文件中 定义数据到 data 中: 在页面中使用 {{}} 语法直接使用: 事件绑定 事件触发 常用事件: 事件对象的属性列表(事件回调触发,会收到一个事件对象 event,它的详细属性如下&…...
深入了解 C 语言 Bug
目录 一、引言二、Bug的定义三、Bug的由来四、Bug的影响五、应对 Bug 的方法六、结论 一、引言 1、在 C 语言的编程世界中,Bug 是一个我们无法回避的话题。 2、Bug,简单来说,就是程序中存在的错误或缺陷。它可以表现为程序运行结果的异常、崩…...
Redis 内存回收
文章目录 1. 过期key处理1.1 惰性删除1.2 周期删除 2. 内存淘汰策略 Redis 中数据过期策略采用定期删除惰性删除策略结合起来,以及采用淘汰策略来兜底。 定期删除策略:Redis 启用一个定时器定时监视所有的 key,判断key是否过期,过…...
【讲解下ECMAScript和JavaScript之间有何区别?】
🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…...
Linux基本指令查询硬件信息001
在Linux系统中查询硬件信息可以通过多种命令行工具完成,本章主要讲述如何查询Linux硬件信息。 操作系统: CentOS Stream 9 操作步骤: 指令uname -a : 显示内核版本、硬件名称、操作系统等基本信息。 [rootlocalhost ~]# uname -a Linux …...
Spring Boot(七十四):集成Guava 库实现布隆过滤器(Bloom Filter)
之前在redis(17):什么是布隆过滤器?如何实现布隆过滤器?中介绍了布隆过滤器,以及原理,布隆过滤器有很多实现和优化,由 Google 开发著名的 Guava 库就提供了布隆过滤器(Bloom Filter)的实现。在基于 Maven 的 Java 项目中要使用 Guava 提供的布隆过滤器,只需要引入以…...
二叉查找树详解
目录 二叉查找树的定义 二叉查找树的基本操作 查找 插入 建立 删除 二叉树查找树的性质 二叉查找树的定义 二叉查找树是一种特殊的二叉树,又称为排序二叉树、二叉搜索树、二叉排序树。 二叉树的递归定义如下: (1)要么二…...
3072. 将元素分配到两个数组中 II
题目 给你一个下标从 1 开始、长度为 n 的整数数组 nums 。 现定义函数 greaterCount ,使得 greaterCount(arr, val) 返回数组 arr 中 严格大于 val 的元素数量。 你需要使用 n 次操作,将 nums 的所有元素分配到两个数组 arr1 和 arr2 中。在第一次操…...
城市之旅:使用 LLM 和 Elasticsearch 简化地理空间搜索(二)
我们在之前的文章 “城市之旅:使用 LLM 和 Elasticsearch 简化地理空间搜索(一)”,在今天的练习中,我将使用本地部署来做那里面的 Jupyter notebook。 安装 Elasticsearch 及 Kibana 如果你还没有安装好自己的 Elasti…...
【知识点】 C++ 构造函数 参数类型为右值引用的模板函数
C 构造函数是一种特殊的成员函数,用于初始化类对象。C 中的构造函数主要分为以下几种类型: 默认构造函数(Default Constructor)参数化构造函数(Parameterized Constructor)拷贝构造函数(Copy C…...
网站集约化建设意见和建议/免费推广工具
1、 清空iptables 设置。iptables -F iptables -X iptables -Z2、配置允许(自己)22登录端口进入iptables -t filter -A INPUT -p tcp --dport 22 -s 10.10.70.103 -j ACCEPT3、设置允许本机lo通信。iptables -t filter -A INPUT -i lo -j ACCEPTiptables -t filter -…...
dw做六个页面的网站/今日头条新闻大事
转自:http://blog.csdn.net/totogo2010/article/details/9100767 准备2个文件: 文件一,ThisService.app文件二,Doxygen.rb下载上述2个文件:ThisService&Doxygen_rb准备好之后,两步配置,一步…...
做网站是个什么行业/福州百度首页优化
正确答案是 CD接口很重要,为了说明情况,这里稍微啰嗦点:(1)接口用于描述系统对外提供的所有服务,因此接口中的成员常量和方法都必须是公开(public)类型的,确保外部使用者能访问它们;(2)接口仅仅描述系统能做什么,但不指明如何去做…...
医药网站制作/如何在百度上添加自己的店铺
矩阵在图形变换中的应用 让每个点的横坐标扩大a倍,纵坐标扩大b倍 让每个点关于x轴翻转。 需要找到一个矩阵T > T . (x , y) (x , -y) 由(x , y)得,T需要为两列, 由(x , -y)得,T需要为两行。 > > 因为 ax by x c…...
商城网站建设/手机百度极速版app下载安装
问题描述 请把纸条竖着放在桌⼦上,然后从纸条的下边向上⽅对折,压出折痕后再展 开。此时有1条折痕,突起的⽅向指向纸条的背⾯,这条折痕叫做“下”折痕 ;突起的⽅向指向纸条正⾯的折痕叫做“上”折痕。如果每次都从下边…...
做一个网站怎么做/网店运营具体做什么
dymDemo dym 分布式开发框架 Demo 熔断 限流 事件总线(包括基于内存的、rabbitmq的) CQRS DDD 实例 随后更新dym 分布式开发框架 dym 是一个分布式开发框架,同时支持 .net core2.2 、.net frameworker4.6.1。1、运行Demo 第一步:启…...