git版本控制软件,操作方法

git版本库操作

1. 注册用户信息 git config --global (邮箱和用户名)

2. 创建工作区 git init

3. 编写文件 vim readme.txt

4. 把文件放到暂存区 git add readme.txt

5. 查看工作区状态 git status

6. 把文件放到本地版本库里 git commit -m "" filename

7. 查看日志详细信息 git log

查看日志简略 git log --pretty=oneline

查看日志精简 git log --oneline (常用)

关于git几个区的含义和用途:

版本控制概念

git

gitlab

git第一天写了10行,把它保存成版本

第二天写了20行,也保存成版本

需要的时版本回滚就行了

直观看,

比如腾讯文档

也有版本保存和恢复的功能

这个版本控制有点像虚拟机的快照

代码的版本控制有点像文件的快照

叫版本

版本服务的软件有哪些

实现版本控制的软件有哪些

集中式有SVN

分布式有Git

分布式版本控制软件Git

想分享自己的代码和保存的时候可以上传到GitLab代码仓库上

代码本来在程序员自己的电脑上,

需要保存和共享的时候可以上传到GitLab代码仓库

和公司的其他同事分享代码

GitLab是server端,也就是服务器端,是管理代码的服务器

Git是相当于客户端

Git是开源的分布式版本控制软件

用c语言编写的,辅助脚本是shell脚本编写的

各linux发行版基本上都默认安装了git软件包,是Linus Torvalds开发的

k8s的版本控制的核心是kubectl apply deployment

每次修改了镜像,在deployment里面修改新的镜像的名字,如果镜像的名称没有变

那么就apply deployment就好了

然后kubectl annotate deployment kubernetes.io/change-cause:"vx"

就能通过kubectl rollout history查看到这个新版本以及注释信息了

如果要版本回滚,就用

kubectl rollout undo deployment xxx --to-revision vx

1. 工作区(workspace),这个叫wx的目录就叫工作区(workspace)

git 版本2

git init wx # 创建一个空仓库,

里面会有一个目录树

这里面有一堆的钩子脚本,

包括commit,这个是提交版本的钩子

git init wx,就会生成一个目录,叫wx

里面就是这么个目录树

每次写代码的时候都得进入这个wx的目录,这相当于开发的工作目录

这里面存放从仓库中提取出来的文件,放在磁盘上供你使用或修改

每次写代码或者改代码都在这个目录下去写,相当于工作目录

工作台,工作区域。

已经写了很多代码的时候,但是没有提前创建.git目录,

这个目录里面也可以用git init命令产生.git目录,来把已有的目录创建成工作区。

每次写完脚本文件保存后,都要上传本地仓库

git的基本使用

yum -y install git # 装包

git init # 创建本地仓库

git status # 看仓库状态

git log # 看提交记录,提交日志

创建一个readme.txt文件之后,就用git status能看到提示有untracked files: readme.txt了,提示用git add提交

用git add提交到暂存区,然后再提交

git add 可以一起提交多个文件

用git add readme.txt之后,用git status查看,

就会提示changes to be commited: new file readme.txt

如果不想提交的话用git rm --cache readme.txt 把这个文件删掉

这个时候用git commit -m "aaa" readme.txt的时候会报错

会提示让创建邮箱和用户名

这个作用是得让gitlab远程仓库知道,这个代码是谁传上来的

而且本地仓库也是,如果没有邮箱和用户名,本地仓库也不知道这是谁写的代码

所以本地仓库也不让上传代码

git config --global user.email "you@example.com"

git config --global user.name "your name"

生产环境下写自己的工作邮箱

git log就能看到一个版本号

]# git commit  -m "aaa"  readme.txt 
[master (root-commit) d8bc6d6] aaa1 file changed, 1 insertion(+)
 create mode 100644 readme.txt
]# git status 
On branch master           # 默认是master分支,也可以用init.defaultBranch 来指定分支
nothing to commit, working tree clean
]# git log
commit d8bc6d69aa1b0655ccaa90c6c7d309a0110a980d (HEAD -> master)   # 版本号、head指针、分支
Author: xxx <xxx@163.com>  # 作者
Date:   Sun Oct 13 15:19:55 +0800  # 提交时间    aaa  # 提交备注
]# ls .git/
branches  COMMIT_EDITMSG  config  description  HEAD  hooks  index  info  logs  objects  refs
]# vim .git/index   # 提交了一次之后,可以看到index这个暂存区的索引目录了

2. 暂存区(index/stage),放到本地仓库之前,要告诉git工具,要把哪些文件放到本地仓库里

要先把要放到本地仓库的文件,先放到暂存区,暂存区就是一个索引文件,这个索引文件看不着也摸不到。是一个临时的索引文件

这里面经常用的

git config --.... 和

kubectl config .... 有点像

都是搞这个命令,或者说这个软件的什么配置之类的

]# ls ~ -a
.   .bash_history  .bash_profile  .cshrc       myproject  .pydistutils.cfg  .tcshrc   .vimrc
..  .bash_logout   .bashrc        .gitconfig    .pip       .ssh              .viminfo
]# cat ~/.gitconfig
[user]
        email = xxx@163.com
        name = xxx

用户的家目录下面有一大堆东西,特别是这些隐藏文件,都是这个用户有关系的设置,比如.vimrc设置用户的vim编辑器的,.ssh设置用户的远程连接和被连接的情况的,这里的.gitconfig里面就放的是git软件所使用的用户的信息,邮箱和用户名

3. 本地仓库(local repository),wx目录下这个隐藏的.git目录就叫本地仓库

这个.git目录本地仓库,保存所有数据,这里面有提交的所有版本的数据

.git就是本地仓库,每次写完脚本和代码,都要上传到本地仓库

git版本库操作

1. 注册用户信息 git config --global

2. 创建工作区 git init

3. 编写文件 vim readme.txt

4. 把文件放到暂存区 git add

5. 查看工作区状态 git status

6. 把文件放到本地版本库里 git commit -m "" file

7. 查看日志详细信息 git log

查看日志简略 git log --pretty=oneline

查看日志精简 git log --oneline

这个git log 跟kubectl logs .... 也有点像

head是指针

master是分支

生成多个版本:

版本编号自动生成

git add . # 启动的点"." 代表当前目录下所有的新文件

head指针在哪个版本,你看到的就是这个版本对应的文件内容

git的指针,head

head指针是可以在任何分支和版本移动的指针

通过移动指针可以把数据还原的任何版本

git reset --hard xxxx # 移动head指针

可以把指针移动到对应版本号的版本

看到指定版本的信息之后,要把对应的信息拷贝出来,再生成更新的的版本

不能修改以前的版本,否则资源就错乱了

要回到最新的版本,用

git reflog 查看所有的版本,可以从回滚的版本,再跑到新的版本中

查到版本号之后再用

git reset --hard xxx 新版本号,--hard是直接硬搞,会丢弃一些未保存的数据

git reflog 看到的是head指针都怎么移动过

这样的话,代码一路走来,每一个版本都有记录,错误的版本也有记录

git的核心作用:

版本控制

分支: 程序员在写代码时所在的工作组

分支可以让代码并行开发,分支之间隔离,也可以合并

常用分支

master 主

develop 最新开发成果

release 新产品

hotfix 修bug

feature 新功能

创建新的分支的时候,会把master分支的文件拷贝一份放到新的分支里面

这个切换分支的感觉有点像有多个k8s集群,用kubectl config切换一样

[root@GitLab ~]# rpm -ivh --nodeps gitlab-ce-12.4.6-ce.0.el7.x86_64.rpm

其中 # "--nodeps" no dependents 不要 依赖

4. 远程仓库(remote repository)远程仓库就是另一台机器remote repository

gitlab github gitee

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

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

相关文章

总结拓展十四:批次管理(2)

1、批次管理后台配置 1.1 批次管理级别配置(T-code:OMTC) ——路径&#xff1a;IMG->后勤-常规->批次管理->指定级别并激活状态管理 1.2 批次状态管理配置(T-code:OMTC) ——路径&#xff1a;IMG->后勤-常规->批次管理->指定级别并激活状态管理 批状态管…

2.1.ReactOS系统NtReadFile函数的实现。

ReactOS系统NtReadFile函数的实现。 ReactOS系统NtReadFile函数的实现。 文章目录 ReactOS系统NtReadFile函数的实现。NtReadFile函数的定义NtReadFile函数的实现 NtReadFile()是windows的一个系统调用&#xff0c;内核中有一个叫NtReadFile的函数 NtReadFile函数的定义 NTS…

【Go初阶】两万字快速入门Go语言

初见golang语法 package mainimport "fmt"func main() {/* 简单的程序 万能的hello world */fmt.Println("Hello Go")} 第一行代码package main定义了包名。你必须在源文件中非注释的第一行指明这个文件属于哪个包&#xff0c;如&#xff1a;package main…

如何捕捉行情爆发的前兆

在金融市场的激烈角逐中&#xff0c;每一次行情的爆发都是投资者获取丰厚回报的关键时刻。然而&#xff0c;如何识别并把握这些时刻&#xff0c;却是一门需要深厚金融专业知识和敏锐洞察力的艺术。今天&#xff0c;我们就来深入探讨行情爆发的初期信号&#xff0c;揭示那些能够…

【Linux】嵌入式Linux系统的组成、u-boot编译

Linux—嵌入式Linux系统的组成、u-boot编译 前言一、嵌入式Linux系统的组成1.1 嵌入式Linux系统和PC完整的操作系统的对比如下&#xff1a;1.2 PC机—Windows系统启动流程&#xff08;PC机—Linux系统、嵌入式ARM—linux系统的启动流程类似&#xff09; 二、编译u-boot2.1 u-bo…

【数据分享】我国第七次人口普查的100m分辨率人口栅格数据(免费获取\tif格式\2020年)

人口空间分布数据是我们在各项研究中经常使用的数据。之前我们分享过来源于LandScan数据集的2000-2022年的1km精度的人口空间分布栅格数据&#xff08;可查看之前的文章获悉详情&#xff09;&#xff01; 相较于LandScan全球人口数据集&#xff0c;我国历次人口普查的数据对于…

【node】初识node

前言 目标 1 为什么要学习node 2 node如何安装 #mermaid-svg-KR8iFyZTmb86RU67 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-KR8iFyZTmb86RU67 .error-icon{fill:#552222;}#mermaid-svg-KR8iFyZTmb86RU67 .error…

QT--QPushButton设置文本和图标、使能禁能、信号演示

按钮除了可以设置显示文本之外&#xff0c;还可以设置图标 文本 可以获取和设置按钮上显示的文本 // 获取和设置按钮的文本 QString text() const void setText(const QString &text)该属性&#xff0c;既可以在 Qt 设计师右侧的属性窗口中修改&#xff0c;也可以在代码…

OpenAI的Swarm是一个实验性质的多智能体编排框架

先上文档&#xff0c;然后解释&#xff0c;然后是代码 OpenAI的Swarm是一个实验性质的多智能体编排框架&#xff0c;旨在简化多智能体系统的构建、编排和部署。以下是对Swarm的详细介绍&#xff1a; 一、核心概念和特点 智能体&#xff08;Agent&#xff09;&#xff1a; Swar…

int QSqlQuery::size() const

返回结果的大小&#xff08;返回的行数&#xff09; 或者返回-1 &#xff08;如果大小不能被决定 或者 数据库不支持报告查询的大小信息&#xff09; 注意&#xff1a;对于非查询语句&#xff0c;将返回-1&#xff08;isSelect()返回false&#xff09; 如果查询不是活跃的&…

支付宝开放平台-开发者社区——AI 日报「10 月 15 日」

1 10年后手机有多科幻&#xff1f;清华孙茂松&#xff1a;人手一个超级大脑&#xff0c;诊病翻译搞研发 新智元&#xff5c;阅读原文 我们有办法将大模型「化大为小」&#xff0c;同时其智能能力没有太多下降&#xff0c;从而以一种「小而美」的方式达至生成式人工智能与手机…

Linux下内核空间和用户空间内存映射图详解

目录 一、简介二、内存空间定义三、内存权限四、内存空间映射图4.1 32位系统4.2 64位系统4.3 映射空间解析 五、其他相关链接1、关于linux下内存管理内容总结2、Linux内核中kzalloc分配内存时用的参数GFP_KERNEL详解3、Linux下stream内存带宽测试参数和示例详解附源码总结 一、…

简易STL实现 | Map 的实现

提供了键值对的存储机制&#xff0c;处理 具有唯一键的关联数据 1、特性 键值对存储&#xff1a;std::map 通过键值对的形式 存储数据&#xff0c;其中每个键 都是唯一的&#xff0c;并且 与一个值相关联 自动排序&#xff1a;std::map 内部 使用一种平衡二叉搜索树&#xf…

uniapp 实现input聚焦时选中内容(已封装)兼容微信小程序

老规矩先来看看效果噻&#xff01; 从上面的录屏中我们可以看出&#xff0c;要实现input自由选中内容的功能是可以实现的&#xff0c;原理其实很简单。 直接运行即可 <template><view><!-- <input class"psd"type"digit" :value"in…

K8s简介和安装部署

一、 Kubernetes 简介及部署方法 1、应用部署方式演变 Kubernetes简称为K8s&#xff0c;是用于自动部署、扩缩和管理容器化应用程序的开源系统&#xff0c;起源于Google 集群管理工具Borg。 传统部署 &#xff1a;互联网早期&#xff0c;会直接将应用程序部署在物理机上 优…

使用Rollup.js快速开始构建一个前端项目

Rollup 是一个用于 JavaScript 项目的模块打包器&#xff0c;它将小块代码编译成更大、更复杂的代码&#xff0c;例如库或应用程序。Rollup 对代码模块使用 ES6 模块标准&#xff0c;它支持 Tree-shaking&#xff08;摇树优化&#xff09;&#xff0c;可以剔除那些实际上没有被…

Vs配置opencv库 实例,opencv选用4.9.0版本,vs版本是2022社版,学习笔记不断更新

课程链接 贾志刚老师opencv入门课程 备注&#xff1a;由于课程好几年前了&#xff0c;直接将环境配置为opencv4.9.0vs22 参考&#xff1a; 参考搭建环境 opencv下载环境&#xff1a;opencv vs22opencv4.9.0 创建一个文件夹 并修改下下面的目录&#xff0c;我的目录是F:\opencv…

模态与非模态的对话框

本文学习自&#xff1a; 《Qt Creato快速入门》 #include "widget.h" #include <QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); }1. #include "widget.h" #include "ui_w…

K8s的储存

一 configmap 1.1 configmap的功能 configMap用于保存配置数据&#xff0c;以键值对形式存储。 configMap 资源提供了向 Pod 注入配置数据的方法。 镜像和配置文件解耦&#xff0c;以便实现镜像的可移植性和可复用性。 etcd限制了文件大小不能超过1M 1.2 configmap的使用场…

SoC芯片中Clock Gen和Reset Gen的时钟树综合

社区目前已经开设了下面列举的前四大数字后端实战课程&#xff0c;均为直播课&#xff0c;且均是小编本人亲自授课&#xff01;遇到项目问题&#xff0c;都可以远程一对一指导解决具体问题。小编本人是一线12年后端经验的数字后端工程师。想找一线IC后端技术专家亲自带你做后端…