Git 学习笔记 三个区域、文件状态、分支、常用命令
Git 学习
- Git
- Git概念
- VS Code中使用
- 仓库(repository)
- 示例
- Git 使用时的三个区域
- 示例
- Git 文件状态
- 示例
- Git 暂存区
- 示例
- Git 回退版本
- 删除文件
- 忽略文件
- 示例
- 分支
- 分支的使用
- 分支的合并与删除
- 分支的合并冲突
- Git常用命令
- Git远程仓库 (HTTP)
- 步骤
- 远程仓库 克隆
- 远程 多人协同开发
- 远程仓库常用命令
Git
我的 下载路径 E:\Git
Git概念
概念:一个免费开源,分布式的代码版本控制系统,帮助开发团队维护代码
作用:记录代码内容,切换代码版本,多人开发时高效合并代码内容
VS Code中使用
VS Code 找到 GIT 终端

查看邮箱和名字 git config --list

仓库(repository)
Git 仓库(repository):记录文件状态内容的地方,存储着修改的历史记录
也就是说,git仓库就是一个 .git 的隐藏文件夹,这里会记录所在项目的 你提交过的 所有文件的 状态的历史记录。
创建仓库
- 把本地文件夹转换成 Git 仓库:命令 git init
- 从其他服务器上克隆 Git 仓库
示例
- 创建一个空白的 Git 仓库
(要看好当前路径)
.git是隐藏的文件夹。在git_study下 创建了一个空白的 Git 仓库


Git 使用时的三个区域
Git 使用时:
工作区:实际开发时操作的文件夹
暂存区:保存之前的准备区域(暂存改动过的文件)
版本库:提交并保存暂存区中的内容,产生一个版本快照

示例
git ls-files 查看当前目录下有哪些文件

Git 文件状态
Git 文件 2 种状态:
✓ 未跟踪:新文件,从未被 Git 管理过
✓ 已跟踪:Git 已经知道和管理的文件

文件A 从未跟踪 到 新添加状态:git add(此时还没有被记录,如果删除是找不回来的)
【此时文件A从工作区被放进暂存区】
-> git commit 产生一次版本记录 变成未修改状态。
【此时文件A从暂存区被放进版本库】
->如果之后修改了文件A,那么就会变成已修改状态。
修改之后,通过git add从工作区被放进暂存区,通过git commit 从暂存区被放进版本库
- git status -s
git status -s查看文件状态

第一列是暂存区状态
第二列是工作区状态
示例
① 添加了一个新文件之后 ,它的状态是 U未跟踪

② git add . 放进暂存区让git管理该文件

③ 在暂存区发生改动

再次 git add .

这里不是 MM 而是 AM ,因为A表示新添加,新是对于版本库来说的,没有提交到版本库中的文件都是新文件。
③ 把文件提交到版本库中 git commits
此时通过 git status -s 发现当前没有变化的文件了(也可以看出这个命令是检测变化的文件)

④ 再次修改

Git 暂存区
暂存区:暂时存储,可以临时恢复代码内容,与版本库解耦
-
暂存区 -> 覆盖 -> 工作区(回退),命令:git restore 目标文件(注意:完全确认 工作区中新修改的代码不想要了,就把暂存区的代码覆盖工作区)
注意这里还没有 git add .
-
从暂存区移除文件,命令:git rm --cached 目标文件

示例
git ls-files 是查看暂存区文件

移除之后只剩下一个了

此时 index.css变成 未跟踪U状态
Git 回退版本
概念:把版本库某个版本对应的内容快照,恢复到工作区/暂存区
查看提交历史:git log --oneline
git reflog --oneline查看完整日志

- 回退命令:
git reset --soft 版本号(其他文件未跟踪)
git reset --hard 版本号(常用)
git reset --mixed 版本号 (与 git reset 等价)
注意1:只有记录在版本库的提交记录才能恢复
注意2:回退后,继续修改->暂存->提交操作即可(产生新的提交记录过程)

√ 是保留的意思,指的是,从版本库恢复之后,工作区和暂存区原本的内容不会被覆盖
× 是覆盖的意思
- 示例

删除文件
步骤:
- 手动删除工作区文件
- 暂存变更 git add/手动删除git rm --cached暂存区文件造成变更
- 提交保存 git commit
总结:
工作区只要改变,都可以暂存提交产生新记录
忽略文件
概念:.gitignore 文件可以让 git 彻底忽略跟踪指定文件
目的:让 git 仓库更小更快,避免重复无意义的文件管理
例如:
- 系统或软件自动生成的文件
- 编译产生的结果文件
- 运行时生成的日志文件,缓存文件,临时文件等
- 涉密文件,密码,秘钥等文件

示例
- 项目根目录新建 .gitignore 文件
- 填入相应配置来忽略指定文件
注意:如果文件已经被暂存区跟踪过,可以从暂存区移除即可

分支
分支的使用
概念:本质上是指向提交节点的可变指针,默认名字是 master
注意:HEAD 指针影响工作区/暂存区的代码状态

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

- 示例步骤:
-
创建分支命令:git branch 分支名
-
切换分支命令:git checkout 分支名


HEAD 会影响 工作区和暂存区的代码

git branch查看当前仓库中有哪些分支的名字:

分支的合并与删除
- 合并:
步骤:
- 切回到要合入的分支上: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 找到冲突文件并手动解决
- 解决后需要提交一次记录
避免:(多交流)
- 按页面划分不同分支开发
- 公共代码在统一文件夹维护
- Node等软件版本统一,npm 包统一下载
Git常用命令


Git远程仓库 (HTTP)
概念:托管在因特网或其他网络中的你的项目的版本库
作用:保存版本库的历史记录,多人协作
创建:公司自己服务器 / 第三方托管平台(Gitee,GitLab,GitHub…)
步骤

https://gitee.com/apurpleberry/webpack_practice_code.git


远程仓库 克隆
克隆:拷贝一个 Git 仓库到本地,进行使用
命令:git clone 远程仓库地址,例如:git clone https://gitee.com/lidongxu/work.git
效果:在运行命令所在文件夹,生成 **work 项目(对应远程仓库地址中的work)**文件夹(包含版本库,并映射到暂存区和工作区)
注意1:Git 本地仓库已经建立好和远程仓库的链接(以后push的时候不需要添加远程仓库了)
注意2:仓库公开随意克隆,但是推送需要身为仓库团队成员
远程 多人协同开发

远程仓库常用命令

相关文章:
Git 学习笔记 三个区域、文件状态、分支、常用命令
Git 学习 GitGit概念VS Code中使用仓库(repository)示例 Git 使用时的三个区域示例 Git 文件状态示例 Git 暂存区示例 Git 回退版本删除文件忽略文件示例 分支分支的使用分支的合并与删除分支的合并冲突 Git常用命令Git远程仓库 (HTTP)步骤远程仓库 克隆…...
OrangePiLinux连接小米手机使用adb显示“List of devices attached”的问题解决
参考文章adb连接不上手机,提示“List of devices attached” - 简书 (jianshu.com) adb解决报错error: no devices/emulators found error: cannot connect to daemon_adb.exe: no devices/emulators found-CSDN博客 error: no devices/emulators found解决办法-C…...
【Jenkins】data stream error|Error cloning remote repo ‘origin‘ 错误解决【亲测有效】
错误构建日志 17:39:09 ERROR: Error cloning remote repo origin 17:39:09 hudson.plugins.git.GitException: Command "git fetch --tags --progress http://domain/xxx.git refs/heads/*:refs/remotes/origin/*" returned status code 128: 17:39:09 stdout: 17…...
3.1_9 基本分段存储管理
文章目录 3.1_9 基本分段存储管理(一)分段(二)段表(三)地址变换(四)分段、分页管理的对比 总结 3.1_9 基本分段存储管理 (一)分段 进程的地址空间:…...
基于SpringBoot+Druid实现多数据源:baomidou多数据源
前言 本博客姊妹篇 基于SpringBootDruid实现多数据源:原生注解式基于SpringBootDruid实现多数据源:注解编程式基于SpringBootDruid实现多数据源:baomidou多数据源 一、功能描述 支持 数据源分组 ,适用于多种场景 纯粹多库 读写…...
Redis开发规范与性能优化(二)
开发规范与性能优化 3.客户端使用 1.【推荐】避免多个应用使用一个Redis示例 正例:不相干的业务拆分,公共数据库做服务化 2.【推荐】使用带有连接池的数据库,可以有效控制链接,同时提高效率,标准使用方式如代码所示 public c…...
我们是否生活在一个超大型生物的大脑之中?——对多元宇宙观与生命存在形式的哲学探讨
随着科技和哲学思辨的深入,关于人类所处宇宙的本质及我们自身存在的真实性的讨论越发引人入胜。其中一种颇具科幻色彩的观点认为,我们可能生活在某个巨大生物的大脑之中,所有的物理规律、自然现象以及我们的感知体验,都可能是这个…...
【Python数据结构与判断7/7】数据结构小结
目录 序言 整体回忆 定义方式 访问元素 访问单个元素 访问多个与元素 修改元素 添加元素 列表里添加元素 字典里添加元素 删除元素 in运算符 实战案例 总结 序言 今天将对前面学过的三种数据结构:元组(tuple)、列表(…...
探讨:MySQL和PostgreSQL谁更火
一、有人说PostgreSQL比MySQL火🔥 PostgreSQL相比于MySQL越来越受欢迎的原因可以从以下几个方面来阐述: 许可协议灵活性: PostgreSQL采用的是较为宽松的BSD许可证,允许企业在开源的基础上自由使用、修改和分发,而无需…...
hbase和es的选取 hbase与es结合
hbase和es的选取 hbase与es结合 背景介绍 HBase与ElasticSearch是现代应用在处理海量数据的技术架构会经常被使用的两款产品,其中HBase是一个分布式KV系统,具有灵活Schema、水平扩展、低成本、高并发的优势,但在复杂查询、分析能力方面相对…...
GoLang:云原生时代致力于构建高性能服务器的后端语言
Go语言的介绍 概念 Golang(也被称为Go)是一种编程语言,由Google于2007年开始设计和开发,并于2009年首次公开发布。Golang是一种静态类型、编译型的语言,旨在提供高效和可靠的软件开发体验。它具有简洁的语法、高效的编…...
高频面试必备(Java研发岗),一线互联网架构师设计思想解读开源框架
BeanFactory 和 ApplicationContext 有什么区别? 如何用基于 XML 配置的方式配置 Spring? 如何用基于 Java 配置的方式配置 Spring? 请解释 Spring Bean 的生命周期? Tomcat Tomcat 的缺省端口是多少,怎么修改&…...
React——react 的基本使用
前提:安装全局的脚手架,通过create-creat-app 项目名,我们创建好一个新项目,cd进去,通过npm start去运行该项目 注意:简单看下demo的配置,在根目录我们可以看到,没有任何webpack的…...
Unity资源热更新----AssetBundle
13.1 资源热更新——AssetBundle1-1_哔哩哔哩_bilibili Resources 性能消耗较大 Resources文件夹大小不能超过2个G 获取AssetBundle中的资源 打包流程 选择图片后点击 创建文件夹,Editor优先编译 打包文件夹位置 using UnityEditor; using UnityEngine; public cla…...
bootstrap企业网站前端模板
介绍 企业网站前端模板 软件架构 前端所用技术html/css/js/jquery 前端框架bootstrap 安装教程 浏览器本地路径访问发布到服务器比如(tomcat/nginx等)云服务器/虚拟机 网站效果图 网站预览 点击预览 源码地址 https://gitee.com/taisan/company…...
分类预测 | Matlab实现GSWOA-KELM混合策略改进的鲸鱼优化算法优化核极限学习机的数据分类预测
分类预测 | Matlab实现GSWOA-KELM混合策略改进的鲸鱼优化算法优化核极限学习机的数据分类预测 目录 分类预测 | Matlab实现GSWOA-KELM混合策略改进的鲸鱼优化算法优化核极限学习机的数据分类预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 GSWOA-KELM分类࿰…...
软考77-上午题-【面向对象技术3-设计模式】-创建型设计模式02
一、生成器模式 1-1、意图 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 1-2、结构图 Builder 为创建一个 Product 对象的各个部件指定抽象接口。ConcreteBuilder 实现 Builder 的接口以构造和装配该产品的各个部件,定…...
微博热搜榜单采集,微博热搜榜单爬虫,微博热搜榜单解析,完整代码(话题榜+热搜榜+文娱榜和要闻榜)
文章目录 代码1. 话题榜2. 热搜榜3. 文娱榜和要闻榜 过程1. 话题榜2. 热搜榜3. 文娱榜和要闻榜 代码 1. 话题榜 import requests import pandas as pd import urllib from urllib import parse headers { authority: weibo.com, accept: application/json, text/pl…...
有趣的前端知识(三)
推荐阅读 有趣的前端知识(一) 有趣的前端知识(二) 文章目录 推荐阅读JS内置对象JS外部对象BOM模型history对象screen对象navigator对象 DOM(文档对象模型)DOM的方法(对于节点的操作)…...
How to install teams in ubuntu
Download deb file download link: https://mirrors.sdu.edu.cn/spark-store-repository/store/office/teams/ install deb sudo apt install ./teams_1.5.00.23861_amd64.deb open and login teams....
EMICoRe算法:用贝叶斯优化与高斯过程提升噪声下VQE性能
1. 项目概述:当VQE遇上硬件噪声,我们如何用机器学习“降噪”?在嘈杂中等规模量子(NISQ)计算的前沿,我们这些从业者每天都在与一个核心矛盾作斗争:一方面,量子硬件(如超导…...
创新方案:DouZero_For_HappyDouDiZhu - AI智能斗地主实战指南
创新方案:DouZero_For_HappyDouDiZhu - AI智能斗地主实战指南 【免费下载链接】DouZero_For_HappyDouDiZhu 基于DouZero定制AI实战欢乐斗地主 项目地址: https://gitcode.com/gh_mirrors/do/DouZero_For_HappyDouDiZhu 你是否曾想过在斗地主游戏中拥有一个永…...
League Akari:英雄联盟玩家的终极智能助手工具包
League Akari:英雄联盟玩家的终极智能助手工具包 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 还在为英雄联盟游戏中的繁琐操作而…...
社交媒体心理健康检测:从TF-IDF到ALBERT的文本分类实战
1. 项目整体设计与思路拆解在社交媒体成为人们日常情绪表达主要出口的今天,利用这些公开文本数据来洞察用户的心理健康状态,已经从一个前沿研究课题,逐渐走向实际应用。我接触这个方向有几年了,从最初简单的关键词匹配,…...
WechatDecrypt终极指南:3步解锁你的微信聊天记忆
WechatDecrypt终极指南:3步解锁你的微信聊天记忆 【免费下载链接】WechatDecrypt 微信消息解密工具 项目地址: https://gitcode.com/gh_mirrors/we/WechatDecrypt 你是否曾经有过这样的经历?换了新手机,却发现珍贵的微信聊天记录无法完…...
Adobe全系列软件激活指南:5分钟掌握GenP 3.0终极破解技巧
Adobe全系列软件激活指南:5分钟掌握GenP 3.0终极破解技巧 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP 你是否在为Adobe Creative Cloud的高昂订阅费用…...
记忆学习导向的高速运动感知图像的去模糊及目标识别【附数据】
✨ 长期致力于深度卷积网络、长短期记忆网络、相机高速运动感知、运动去模糊、运动目标识别研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)融合DCNN与…...
magic - trace:高分辨率追踪利器,解决应用难题,还能深入洞悉程序运行!
magic - trace 概述magic - trace 能够收集并展示进程活动的高分辨率追踪信息,可用于解决生产环境中应用程序处理请求速度慢、了解代码实际运行情况、获取应用崩溃前活动历史等问题。它性能开销在 2% - 10% 之间,使用时无需修改应用程序,能以…...
Midscene.js 实战(三):使用 LLMs.txt 机制完美适配复杂前端项目
前言:当 AI 测试遇到“看不懂”的前端项目 试想这样一个场景:你花了三天时间给公司的核心业务系统编写了一套 Midscene.js 自动化测试脚本,在开发环境跑得顺风顺水,绿色通过。然后你把脚本部署到测试环境——30 个用例红了 18 个。排查了半天你发现:测试环境的页面用的是…...
SHAP值在时间感知研究中的应用:从机器学习预测到认知机制解释
1. 项目概述:当时间感知遇上可解释AI 在认知科学和神经工程领域,时间感知一直是个迷人的谜题。我们如何感知时间的流逝?为什么有时“度日如年”,有时又“光阴似箭”?传统研究多依赖于行为实验和理论模型,但…...
