git 版本管理工具 学习笔记

git 学习笔记

目录

一、git是什么

 二、创建仓库

三、工作区域和文件状态

 四、添加和提交文件

五、回退版本 (了解)

六、查看差异

七、删除文件

 八、.gitignore文件(了解)

 九、github ssh-key配置  

 十、本地仓库和远程仓库内容推送


一、git是什么


git是分布式主流版本管理控制系统
结合GitHub管理托管平台使用
使用一个叫仓库的数据库来控制文件的变化,仓库中的每个文件都有一个完整的版本历史纪录,可以看到提交者在什么时间修改了哪些文件的哪些内容,需要时可以回退历史版本

在这里插入图片描述

 二、创建仓库

方式一:在自己的电脑本地直接创建一个仓库 

 创建一个作为项目仓库的文件夹     mkdir  文件夹名

然后进入该目录下 输入命令 :git init

或者在已有本地项目文件夹直接初始化

git init

出现以上回显语句,说明创建成功,而且,会多一个隐藏文件夹 .git 

ls  看不到隐藏文件夹,要   ls -a  才能看到目录下所有文件夹 

 当然,可以直接初始化一个仓库,直接在命令后加上 仓库名,会直接生成对应文件夹

git init my-repo

方式二:从远程服务器上克隆一个已经存在的仓库

git clone github/gitee项目地址
例如:git clone https://github.com/jjw-DL/OpenPCDet-Noted.git

三、工作区域和文件状态

 工作区:电脑里实际可以看到的目录

暂存区:也叫索引,用来临时存放未提交的内容,一般在.git目录下的index中

本地仓库:Git在本地的版本库,仓库信息存储在.git这个隐藏目录中

远程仓库:托管在远程服务器上的仓库,如github\gitlab\gitee

 文件状态

已修改:修改了文件,但没有保存到暂存区

已暂存:把修改后的文件放到暂存库

已提交:把暂存区的文件提交到本地仓库

主要是以上三种,下两种较少提

(未跟踪):新建的还没有被git管理起来的文件

(未修改):已经被git管理起来,内容未被修改

下图为部分转换关系

 四、添加和提交文件

git init   //创建仓库
git status   //查看仓库状态
git add   //添加到暂存区
git add *.后缀名  //添加一类文件到暂存区
git add .    //把当前文件夹下所有文件添到暂存区
git commit   //提交
git commit -m "message"  //提交所有暂存区的⽂件到本地仓库
git commit -am "message"  //提交所有已修改的⽂件到本地仓库
git log  //查看提交记录信息
git log --oneline  //查看提交历史,--oneline表示简介模式ps:
git diff   //查看未暂存的⽂件更新了哪些部分
git diff <commit-id> <commit-id>   //查看两个提交之间的差异git ls-files  //查看暂存区的文件

例如查看状态:

 这是已经提交完成的状态

刚创建的未跟踪的文件是显示红色的

git add 可以使用通配符添加多个同后缀文件

例:下有四个红色未跟踪状态下的文件,txtsh都有

 把以txt结尾的文件添加进暂存区,使用命令

git add   *.txt

运行命令后查看status状态 ,绿色表示在暂存区,红色表示在工作区未添加到暂存区

git commit只会提交暂存区中的文件,不提交工作区的文件

五、回退版本 (了解)

git reset git reset --soft   //工作区和暂存区都不清空
git reset --hard    //工作区清空  暂存区清空  
git reset --mixed    //工作区保留  暂存区清空  --默认此场景

 例如下面三次提交:

下面是  git log 查询的版本号

  复制三份,用来熟悉三种参数操作

 例:尝试soft回退:

 查看提交历史:

 退到第二次提交了

工作区文件还在,内容未变,暂存区文件也还在

查看状态,回到了第二次提交版本,此时 file3 还未提交,仍在暂存区,显示绿色 

hard参数回退到上一版本:工作区暂存区file3都没了

mixed参数回退到上一版本:工作区还有,暂存区没了

六、查看差异

七、删除文件

rm <file> ;git add <file> //本地工作区删除文件,然后暂存删git rm <file>   //从暂存区和工作区同时删除git rm --cached <file>   //暂存区删除,保留在工作区中git rm -r *   //递归删除某个目录下所有子目录和文件,删后提交下ps:
git mv <file> <new-file>  //移动⼀个⽂件到新的位置

 关于rm 后要add, 看到,单纯rm后,暂存区并没删除,所以有git rm  file这个命令,一次就好,

 但还是记得 git commit 提交,不然,删除的文件在版本库中还是存在的

 八、.gitignore文件(了解)

作用是让我们忽略掉一些不应该被加入到版本库中的文件,让仓库体积更小,更干净

 九、github ssh-key配置  

github建立仓库后,有https 和 ssh 两种方式的远程仓库地址,

https开头的方式在我们需要把本地代码push到远程仓库的时候,要验证账户和密码

git 开头的使用ssh协议,这种方式在推送的时候不需要验证用户名和密码,但需要在github上添加ssh公钥的配置,更安全

github 配置ssh密钥:

直接git clone 在github上的地址,发现报无法建立连接

键入:

ssh-keygen

回显密钥文件生成位置,直接回车,跳出设置二次验证密码,没必要,直接回车,再回车确认空填二次验证密码 ,如下图,成功

 记事本打开公钥.pub 文件,全选内容,复制

 打开github页面,头像处点击,进入settings,

 左侧栏找到ssh and gpg keys ,进入,点击add keys

 如图,可以取一个名字

可能会跳出验证github的账号密码,输入就行

可以测试一下连接,输入如下命令

ssh -T git@github.com

 测试通过

 总结:

 十、本地仓库和远程仓库内容推送

再次克隆我们创建的github仓库,克隆成功

复习一下添加命令,以及推送到平台

进入仓库,创建个小文件,写入 hello

 git add 添加到暂存区,git commit 添加到本地仓库

 此时,github还是看不到我们的hello.txt

因为没有从本地仓库推送到远程平台仓库

所以,执行 git push 命令

 此时,刷新 github 仓库页面,发现已经推送成功

十、关联本地仓库和远程仓库

git remote add origin ....github仓库地址....
----------------------------
git branch -M mian   //指定分支名称为main
----------------------------
git push -u origin main  
//把本地的main分支和远程的origin别名的仓库的main分支关联起来
//其实,完整语句应该是:
//git push -u origin main:main
//如果本地分支和远程分支名字相同的话,就写一个main就行啦----------------------------
git pull origin main
//远程仓库上在线修改了文件的话,或者其他人的本地仓修改了推上去,
//而我们在本地仓库要同步的话,需要拉取同步,这时要使用pull
//作用是把远程仓库的指定分支拉取到本地进行合并

以刚才例子做说明步骤

 可以看到现在远程仓库对应别名就是 origin ,后面就是对应地址

 push 具体例子上一节有

示范一下 pull 操作

github上在线新增一个 readme 文件

 不输入别名 分支名 ,则默认仓库别名为origin,分支为main

 本地仓库新增了修改的新增readme文件

 查看内容,一致

 注意,执行完pull,会自动执行合并操作,如果远程仓库修改内容和本地仓的修改内容没有冲突的话,合并操作就会成功,否则会冲突失败,需要手动解决

fetch 命令也可以获取远程仓的修改,但不会自动合并,具体冲突问题在学习分支时再记录

小节总结:

 2023.8.7

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

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

相关文章

C++ STL vector

目录 一.认识vector 二.vector的使用 1.vector的构造函数 2.vector的迭代器 2.1 begin&#xff08;&#xff09;&#xff0c;end&#xff08;&#xff09; 2.2 rbegin&#xff08;&#xff09;&#xff0c;rend&#xff08;&#xff09; 2.3 迭代器初始化对象 3. vector…

pp-ocr报错记录

RESER 报错&#xff1a; distutils.errors.DistutilsError: Could not find suitable distribution for Requirement.parse(‘tomli>1.0.0’) 解决办法&#xff1a; 参考&#xff1a;https://stackoverflow.com/questions/67603407/distutilserror-could-not-find-suitable…

网络编程——MAC地址、IP地址和子网掩码

MAC地址、IP地址和子网掩码 一、MAC地址&#xff1a;硬件身份证 1、MAC地址的概念 MAC地址&#xff0c;即媒体访问控制地址&#xff08;Media Access Control Address&#xff09;&#xff0c;是一个用于唯一标识网络设备的物理地址。每个网络接口卡&#xff08;NIC&#xf…

RocketMQ 主备自动切换模式部署

目录 主备自动切换模式部署 Controller 部署​ Controller 嵌入 NameServer 部署​ Controller 独立部署​ Broker 部署​ 兼容性​ 升级注意事项​ 主备自动切换模式部署 该文档主要介绍如何部署支持自动主从切换的 RocketMQ 集群&#xff0c;其架构如上图所示&#xff…

TeeChart NET for MAUI Crack

TeeChart NET for MAUI Crack 跨平台图表-移动或桌面应用程序的核心图表代码相同。 图表集合-60多种图表类型和50多种财务和统计指标。 图表类型 60多种2D和3D图表类型以及多种组合&#xff0c;包括&#xff1a; 标准&#xff1a;线条(条形)、条形、区域、饼图、快线、点(散点…

24届近5年上海大学自动化考研院校分析

今天给大家带来的是上海大学控制考研分析 满满干货&#xff5e;还不快快点赞收藏 一、上海大学 学校简介 上海大学是上海市属的综合性研究型大学&#xff0c;是教育部与上海市人民政府共建高校&#xff0c;是国家“211 工程”重点建设高校、上海市高水平地方大学建设高校&a…

Python爬虫遇到重定向问题解决办法汇总

在进行Python爬虫任务时&#xff0c;遇到重定向问题是常见的问题之一。重定向是指在发送请求时&#xff0c;服务器会返回一个新的URL&#xff0c;将请求重新定向到该URL。为了帮助您解决这个问题&#xff0c;本文将提供一些实用的解决办法&#xff0c;并给出相关的代码示例&…

论文阅读 - Social bot detection in the age of ChatGPT: Challenges and opportunities

论文链接&#xff1a;https://www.researchgate.net/publication/371661341_Social_bot_detection_in_the_age_of_ChatGPT_Challenges_and_opportunities 目录 摘要&#xff1a; 引言 1.1. Background on social bots and their role in society 1.2. The rise of AI-gene…

Java私有仓库Nexus搭建部署

Java私有仓库Nexus搭建部署 需求分析 为什么要搭建部署Nexus私有仓库&#xff0c;有什么用&#xff0c;用来干什么&#xff0c;怎么用&#xff0c;也许是大家看到这篇文章的第一个反应和疑惑&#xff0c;这里给大家先笼统的做一个介绍&#xff1a; 依赖管理&#xff1a;在Java…

css, resize 拖拉宽度

效果如下&#xff1a; 可直接复制预览查看属性值: 关键样式属性&#xff1a; resize: horizontal; overflow-x: auto; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content…

Windows同时安装两个版本的JDK并随时切换,以JDK6和JDK8为例,并解决相关存在的问题(亲测有效)

Windows同时安装两个版本的JDK并随时切换&#xff0c;以JDK6和JDK8为例&#xff0c;并解决相关存在的问题&#xff08;亲测有效&#xff09; 1.下载不同版本JDK 这里给出JDK6和JDK的百度网盘地址&#xff0c;具体安装过程&#xff0c;傻瓜式安装即可。 链接&#xff1a;http…

第20节 R语言医学分析:某保险医疗事故赔偿因素分析

文章目录 某保险医疗事故赔偿因素分析源码源文件下载某保险医疗事故赔偿因素分析 我们分析数据集“诉讼”的第一个方法是确定样本数量、变量类型、缩放/编码约定(如果有)用于验证数据清理。 接下来,数据集看起来很干净,没有缺失值,并且对于分类变量,将编码约定替换为实际…

第3章 数据和C

本章介绍以下内容&#xff1a; 关键字&#xff1a;int 、short、long、unsigned、char、float、double、_Bool、_Complex、_Imaginary 运算符&#xff1a;sizeof() 函数&#xff1a;scanf() 整数类型和浮点数类型的区别 如何书写整型和浮点型常数&#xff0c;如何声明这些类型的…

设计模式原来是这样

目录 概述: 什么是模式&#xff01;&#xff01; 为什么学习模式&#xff01;&#xff01; 模式和框架的比较&#xff1a; 设计模式研究的历史 关于pattern的历史 Gang of Four(GoF) 关于”Design”Pattern” 重提&#xff1a;指导模式设计的三个概念 1.重用(reuse)…

工具、技巧【个人专用】如何在CSND编辑器内输出带颜色的字体?Markdown编辑器——字体、字号、颜色使用全解

当你穿过了暴风雨,你就不再是原来那个人。 ————村上春树 🎯作者主页: 追光者♂🔥 🌸个人简介: 💖[1] 计算机专业硕士研究生💖 🌿[2] 2023年城市之星领跑者TOP1(哈尔滨)🌿 🌟[3] 2022年度博客之星人工智能领域TOP4dz

HarmonyOS/OpenHarmony-ArkTS基于API9元服务开发快速入门

一、创建项目 二、创建卡片 三、添加资源 四、具体代码 Entry Component struct WidgetNewCard {/** The title.*/readonly TITLE: string harmonyOs;readonly CONTEXT: string 技术构建万物智联;/** The action type.*/readonly ACTION_TYPE: string router;/** The…

Win10下webots2020b闪退

下载安装完之后打开软件就会停留在这个界面几秒钟&#xff0c;什么都点不了&#xff0c;然后就会闪退回桌面 原因: webots安装路径中有中文 解决方案&#xff1a; 安装路径下的中文改为英文

【广州华锐视点】海上石油钻井VR在线实训平台

随着科技的不断发展&#xff0c;VR元宇宙平台已经成为了越来越多领域的培训工具。在海上石油钻井实训中&#xff0c;VR元宇宙平台也能够发挥重要的作用&#xff0c;为学员提供更加真实、直观的培训体验。 首先&#xff0c;VR元宇宙平台可以模拟真实的海上钻井作业环境。通过VR眼…

Mybatis分页查询案例

前言 今天再写项目时刚好碰到Mybatis分页查询展示数据&#xff0c;现将实现过程整理出来以便后续再碰到类似需求回来瞅一眼。 数据准备 1、数据库表&#xff08;user_info&#xff09; 2、前端页面 代码实现 1、User实体类 package com.liming.pojo;import com.fasterxml.ja…

帆软设计器报表加载不出折线图的原因

最近在用帆软设计器做可视化图表。偶有遇到因为数据集的字段类型导致加载不出折线&#xff0c;现记录如下。做报表的同行可以参考。 数据库使用了 Oracle 11g。数据集的 SQL 代码片是之前用在另一个单元格报表里面的。页面上有一个率是直接计算得出&#xff0c;我为了方便、就…