git 笔记

文章目录

  • 前言
  • 一些代码托管仓库
  • 初步的一些理解
  • 设置个人信息
  • 创建自己的仓库
  • 查看仓库的状态
  • 添加文件到暂存区
  • 把暂存区的文件添加到版本库
  • 查询两个文件之间的区别
  • 查看版本迭代信息
  • 版本回滚
  • 查看所有的历史版本
  • 快捷切换应用
  • 感受
  • 分支的一些相关的操作
  • 假设新建一个分支并跳转到这个分支之后
  • 代码仓库
  • web 前端开发
  • tmux 全屏和缩小
  • 把本地项目创建到云端的步骤
  • ssh 生成密钥
  • 总结

前言

自己之前搭建自己的网站的时候,有使用过 git ,但是没有系统的学习过,现在终于可以系统的学一遍了

刚好自己现在的 git bash 出现了一些问题,早一段时间,我想要在个人博客网站上面更新一些内容,然后发现更新不了,不知道是因为更新了一些文件还是啥原因
在这里插入图片描述
所以上一次更新还是差不多一个月之前

一些代码托管仓库

gitee
github

要是想自己搭建一个类似于 github 的平台,可以参考这个开源项目 gitlab

初步的一些理解

git 是一个版本管理工具,就是可以支持多人协同开发,然后迭代开发,有三个部分,工作区,暂存区,版本库

工作区把代码存到暂存区,再存到版本库,相当于中间有一个缓存的一个作用

设置个人信息

git config --global user.name tzs设置自己的名字

git config --global user.email tian_zishen@qq.com设置自己的邮箱

虽然我知道这个有直接的命令可以复制,但是我还是老老实实自己手敲一遍,因为自己是一个初学者,老老实实,扎扎实实学一遍肯定是有一些好处的

创建自己的仓库

git init
在这里插入图片描述
进入创建的这个隐藏的文件夹,可以发现里面一堆文件

感觉后面任重道远,还有很多很多东西要学,但是没有关系,进一步有进一步的欢喜,不要太着急,慢慢来

今天是 12 号,今天能把 git 学完,把十个作业写完就算胜利,加上干各种事情,还有 10 个小时的时间

查看仓库的状态

git status
在这里插入图片描述

添加文件到暂存区

git add readme.txt
在这里插入图片描述

可以发现前面红色的文件名变成绿色了,之前添加可执行文件的权限的时候,也会发生颜色的变化

git add .表示把所有的文件加到暂存区里面

把暂存区的文件添加到版本库

git commit -m "no.1"注意空格,然后双引号里面的内容相当于注释信息在这里插入图片描述

另外笔者发现 git 敲击 tab 键没有代码补全,所以一些英文可能需要自己把它记清楚

commit 之后,暂存区会清空

查询两个文件之间的区别

git diff readme.txt ,其实就是 difference 的英文缩写

在这里插入图片描述

出现一堆估计只有机器能够明白的东西,因为我修改的文件全是中文(修改之前全是中文,修改是又加了一些中文上去)

有很多很多命令,可能最后常用的也不算多,自己先全部敲一遍,留一个印象,然后常用的敲的多了肯定就记住了,所以完全不需要有任何压力

我使用的终端,输入的时候虽然不支持中文,但是在查看文本文件的时候,还是可以显示中文的

查看版本迭代信息

git log
在这里插入图片描述
这个是从下往上看,最下面是最原始的版本,最上面是最新的版本

或者用这个命令,一行显示一个版本信息,可能更加清晰
git log --pretty=oneline,很多命令后面空格,加上 --,其实笔者感觉这个非常接近英文的一些自然语言,pretty表示的是美观的,然后一行,用一行美观的显示,一眼看过去就知道是啥意思了
在这里插入图片描述

这些命令不需要背,只需要大概知道是啥意思,然后一边用一边查就好了,熟练了就可以了

版本回滚

git reset --hard HEAD^,表示回滚一个版本,要是有两个 ^ ,表示回滚两个版本
git reset --hard 06de12e表示的是跳转到这个版本号,最后七个数字字母表示的是版本号,通过 git reflog可以查询到版本号

现在笔者发现学习这个东西最难的地方在哪里了,就是繁杂,然后没有一定的自驱力或者外在的压力,很有可能偷懒,就学得很慢很慢

这个操作其实挺厉害的,像是恢复历史记录一样,我在当前目录下打开项目里面的文件,因为跳转到了第一次编辑的时候的文件,所以文件只有一行话

tmux 里面,用 insert 相关的键复制粘贴比 [ 这种复制粘贴要简单一些,按住 shift 选中文本即可

我发现自己总是被浏览器首页的一些新闻吸引,不用那个浏览器了,换一个浏览器算了

查看所有的历史版本

git ref,这个的意思就是,查看所有的历史版本,包括指针的一些移动,指针的移动是指前面说的版本回滚,就是一些操作都是可以查询到的

快捷切换应用

看到教程的老师快速切换不同的软件,感觉开发效率比较高,搜了一下
在这里插入图片描述
alt + tab 是最好用的快捷键

现在感觉都非常好用,比如说,我现在需要看网课,也需要命令行编辑器,有朋友找我我需要使用 qq ,还需要 csdn 编辑器做笔记,我可以这样安排,

1.桌面1:网课,qq
2.桌面2:终端
3.桌面3:云端
4.桌面4:csdn 编辑器

每一个程序可以全屏,沉浸式体验,感觉非常棒

在不打开社交软件的情况下,win+ shift+ s可以截屏
感觉操作一些快捷键,脱离鼠标,会给自己的开发效率质的提升,比如说点击 F5 刷新网页,点击空格开始输入文字,所以笔者准备尽可能多的使用快捷键

所以难怪那么多朋友热衷于机械键盘,确实可能可以带来不一样的编程体验和游戏体验

操作终端很有成就感,同一个浏览器新建窗口相当于新打开了一个程序,也比较好用

感受

自己在本地修改一些文件,然后用一套丝滑小连招,就可以把文件同步到云端

1.修改文件
2.git add .
3.git commit -m "描述信息"
4.git push

确实比较简单

上面是主分支的情况,假设我们是创建一个分支,然后再上传到云端,是下面的操作步骤

1.创建分支并切换到这个分支 git checkout -b dev7dev7 表示的是,这个分支的名字,可以随便选择
2.修改文件
3.git add .
4.git commit -m "描述信息"
5.git push --set-upstream origin dev7,相当于是在云端创建一个分支,因为现在云端没有对应的分支,直接 git push 不太合适,使用这个命令云端没有任何反应,origin表示的是云端

分支的一些相关的操作

1.创建一个新的分支并跳转到这个分支,git checkout -b devdev就是分支的名字,可以自己随便修改,-b 表示的是 branch分支的意思
2.跳转到某个分支,git checkout dev,和上面一样,dev表示的是,分支的名字

通过上面两个命令可以看出来,checkout表示的是跳转的意思,branch或者-b表示的是创建一个新的分支,一般是创建一个新的分支就直接跳转到该分支,所以直接创建分支的语句可能用的概率非常小,这里还是列出来,git branch dev

假设新建一个分支并跳转到这个分支之后

我们想要在云端也新建一个相同的分支,前面写了一个比较长的命令,其实我们用 git push 就好了,我们输入这个命令之后,会提示一个命令,复制这个命令就好了

代码仓库

不一定要开源,可以设置成私有的,只有自己可以看到

web 前端开发

其实自己花了很多的时间和精力去做这件事情,但是最后成绩,貌似很一般(平时分 81 占比 40% 总分 77),感觉完全和自己的付出时间不成正比,我感觉主要原因是,一方面当时上课的时候,没有扎扎实实按照要求来做,另一方面,文档写的不够好,因为最后的大作业可能我是用框架写的,讲解代码的时候我说不了啥实质性的东西,因为我主要的工作就是做了一些配置文件的修改,顺便学了一下 git 怎么使用之类的,和 web 前端开发的差距可能还是有一些,大部分还算是自己的原因吧,就像王者里一个角色说的,错了就得认,挨打要立正,确实有点无奈

虽然我知道这个成绩对自己的未来的影响不算很大,但是要是我在一些课程里面取得高分,对我的自信心还是有一些好处的,我很好奇,要是自己竭尽全力,在整个专业大概可以排到一个什么样的位次(扎扎实实听课写作业,看一些网课,做一些笔记,做一下期末考试试卷,大概这样子)

tmux 全屏和缩小

笔者知道 tmux 全屏是 ctrl + a + z ,但是这个快捷键需要一定的先后顺序,先按前面两个松开之后按第三个,全屏之后缩小就是再按一遍

把本地项目创建到云端的步骤

1.在代码托管平台创建一个项目

在这里插入图片描述
最好是项目名字和终端的文件夹名字一样
在这里插入图片描述
创建好之后如上图所示
2.输入mkdir project1创建一个名字叫做 project1 的文件夹,进入这个文件夹

git config --global user.name tzs
git config --global user.email tian_zishen@qq.com

注意这里的 tzs是用户名,另一个是邮箱,这个是一些信息,貌似是必须的,然后输入 git init,初始化这个文件夹,也是必须做的
3.在 github的项目首页找到这个部分
在这里插入图片描述
输入这条命令
git remote add origin git@github.com:t-zs/project1.git ,把本地和云端仓库连接起来

4.然后创建文件,add commit push,触发连招,和前面讲的是一样的,就可以把本地的文件传到云端代码仓库了,像是这样子
在这里插入图片描述
还需要注意,在一切开始之前,需要把公钥文件里面的内容上传到自己代码仓库里面,我之前操作过一次,现在重新在 tmux 里面打开自己的云服务器,假装自己是一个新的小伙伴,再来生成一个密钥

ssh 生成密钥

1.输入ssh-keygen,然后一直按回车,进入到 .ssh文件夹下面可以看到一个私钥文件和一个公钥文件,pub后缀的是公钥文件
在这里插入图片描述
打开这个文件,把公钥的内容复制到代码仓库里面(还是用一个桌面方便操作一些,浏览器就打开不同的窗口就好,相当于不同的程序)

ssh的名字可以随便取一个,点击保存即可

在这里插入图片描述在这里插入图片描述

总结

终于学完了,还算比较简单,之后有时间再操作一下自己的博客网站(github.io)git主要就是进行版本管理,可以把自己的代码存到云端,学的主要是一些命令,通过这些命令和计算机进行交互,实现自己的需求

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

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

相关文章

【ARM】MDK安装ARM_compiler5无法打开安装程序

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 在客户安装了最新版本的MDK5.37及后续更新版本,但原工程使用ARM_Compiler_5.06进行编译和调试,需安装ARM_Compiler_5.06的编译器版本,但在解压缩的过程中后续无法打开ARM_Compiler…

FinalShell介绍,安装与应用

目录 一、什么是finalshell 二、finalshell功能 三、为什么要用finalshell 四、安装finalshell 五、finalshell使用 1.添加连接 获取虚拟ip地址 2.启动连接 一、什么是finalshell FinalShell是一体化的的服务器,网络管理软件,不仅是ssh客户端,还是功能强大的开发,运维工…

【学习笔记】无人机(UAV)在3GPP系统中的增强支持(四)-无人机系统(UAS)命令与控制(C2)通信用例

引言 本文是3GPP TR 22.829 V17.1.0技术报告,专注于无人机(UAV)在3GPP系统中的增强支持。文章提出了多个无人机应用场景,分析了相应的能力要求,并建议了新的服务级别要求和关键性能指标(KPIs)。…

Re:从零开始的C++世界——(一)入门基础

文章目录 C发展历史1.命名空间1.1 namespace的价值1.2 namespace的定义1.3 命名空间使⽤ 2.C输⼊&输出3.缺省参数3.1 缺省参数的概念3.2 缺省参数的分类 4.函数重载5.引⽤5.1引⽤的概念和定义5.2 引⽤的特性5.3 const引⽤5.4 使用场景5.5 指针和引⽤的关系 6.内联函数6.1内…

NAT地址转换+多出口智能选路,附加实验内容

本章主要讲:基于目标IP、双向地址的转换 注意:基于目标NAT进行转换 ---基于目标IP进行地址转换一般是应用在服务器端口映射; NAT的基础知识 1、服务器映射 服务器映射是基于目标端口进行转换,同时端口号也可以进行修改&…

Mybatis-plus 集成 PostgreSQL 数据库自增序列问题记录

1.创建序列并绑定id CREATE SEQUENCE biz_factory_seq START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1;"id" int4 NOT NULL DEFAULT nextval(sys_user_seq::regclass), 2.实体设置KeySequence和TableId注解 注意IdType.INPUT 和 KeySequence(value …

Java巅峰之路---基础篇---综合练习(面向对象)

目录 文字版格斗游戏 基础版 souf输出语句 进阶版 键盘录入的说明 复杂对象数组练习 需求: 添加和遍历 删除和遍历 修改和遍历 文字版格斗游戏 基础版 格斗游戏,每个游戏角色的姓名,血量,都不相同,在选定人…

c++入门基础篇(上)

目录 前言: 1.c++的第一个程序 2.命名空间 2.1 namespace的定义 2.2 命名空间使用 3.c++输入&输出 4.缺省参数 5.函数重载 前言: 我们在之前学完了c语言的大部分语法知识,是不是意…

论文学习_An Empirical Study of Deep Learning Models for Vulnerability Detection

1. 引言 研究背景:近年来,深度学习漏洞检测工具取得了可喜的成果。最先进的模型报告了 0.9 的 F1 分数,并且优于静态分析器。结果令人兴奋,因为深度学习可能会给软件保障带来革命性的变化。因此,IBM、谷歌和亚马逊等行业公司非常感兴趣,并投入巨资开发此类工具和数据集。…

微信小程序如何实现登陆和注册功能?

👨‍💻个人主页:开发者-曼亿点 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 曼亿点 原创 👨‍💻 收录于专栏&#xff1a…

最新 Kubernetes 集群部署 + Containerd容器运行时 + flannel 网络插件(保姆级教程,最新 K8S 1.28.2 版本)

资源列表 操作系统配置主机名IP所需插件CentOS 7.92C4Gk8s-master192.168.60.143flannel-cni-plugin、flannel、coredns、etcd、kube-apiserver、kube-controller-manager、kube-proxy、 kube-scheduler 、containerd、pause 、crictlCentOS 7.92C4Gk8s-node01192.168.60.144f…

JVM:运行时数据区

文章目录 一、总览二、程序计数器1、介绍2、程序计数器在运行中会出现内存溢出吗? 三、栈1、介绍2、栈帧的组成部分(1)局部变量表(2)操作数栈(3)帧数据(3)栈内存溢出&…

everything搜索不到任何文件-设置

版本: V1.4.1.1024 (x64) 问题:搜索不到任何文件 click:[工具]->[选项]->下图所示 将本地磁盘都选中包含

mavsdk_server安卓平台编译

1.下载好mavsdk并进入mavsdk目录 2.生成docker安卓平台文件 docker run --rm dockcross/android-arm64 >./dockcross-android-arm64 3.生成makefile ./dockcross-android-arm64 cmake -DCMAKE_BUILD_TYPERelease -DBUILD_MAVSDK_SERVERON -DBUILD_SHARED_LIBSOFF -Bbuild/…

【学习笔记】4、组合逻辑电路(下)

接前文《【学习笔记】4、组合逻辑电路(上)》 4.4.5 算术运算电路 1. 半加器和全加器 半加器和全加器是算术运算电路中的基本单元。半加器和全加器是1位相加的组合逻辑电路。 (1)半加器 半加器:只考虑两个加数本身,不考虑低位进…

SuiteCRM SQL注入漏洞复现(CVE-2024-36412)

0x01 产品简介 SuiteCRM是一款屡获殊荣的企业级开源客户关系管理系统,它具有强大的功能和高度的可定制性,且完全免费。 0x02 漏洞概述 SuiteCRM存在SQL注入漏洞,未经身份验证的远程攻击者可以通过该漏洞拼接执行SQL注入语句,从…

C++20中的consteval说明符

在C20中,立即函数(immediate function)是指每次调用该函数都会直接或间接产生编译时常量表达式(constant expression)的函数。这些函数在其返回类型前使用consteval关键字进行声明。 立即函数是constexpr函数,具体情况取决于其要求。与constexpr相同&…

光学遥感图像中的目标检测技术全面综述,以及新的大规模基准数据集DIOR介绍。

原版论文:https://arxiv.org/abs/1909.00133 数据获取地址:https://www.dilitanxianjia.com/15648/ 获取全文可以入下图所示进行操作: 这篇文章主要对光学遥感图像中的目标检测技术进行了全面的综述,并提出了一个新的大规模基准…

神经网络以及简单的神经网络模型实现

神经网络基本概念: 神经元(Neuron): 神经网络的基本单元,接收输入,应用权重并通过激活函数生成输出。 层(Layer): 神经网络由多层神经元组成。常见的层包括输入层、隐藏层…

Camunda如何通过外部任务与其他系统自动交互

文章目录 简介流程图外部系统pom.xmllogback.xml监听类 启动流程实例常见问题Public Key Retrieval is not allowed的解决方法java.lang.reflect.InaccessibleObjectException 流程图xml 简介 前面我们已经介绍了Camunda的基本操作、任务、表: Camunda组件与服务与…