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

devtools/2024/10/21 21:50:46/

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.ppmy.cn/devtools/127661.html

相关文章

OpenCV高级图形用户界面(7)获取指定窗口的属性值函数getWindowProperty()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 提供窗口的参数。 函数 getWindowProperty 返回窗口的属性。 cv::getWindowProperty() 函数用于获取指定窗口的属性值。这个函数允许你查询窗口…

成都睿明智科技有限公司共创抖音电商新篇章

在当今这个数字化浪潮汹涌的时代&#xff0c;抖音电商以其独特的魅力迅速崛起&#xff0c;成为众多商家竞相追逐的新蓝海。在这片充满机遇与挑战的领域中&#xff0c;成都睿明智科技有限公司凭借其专业的服务、创新的策略和敏锐的市场洞察力&#xff0c;成为了众多商家信赖的合…

每日OJ题_牛客_连续子数组最大和_线性dp_C++_Java

目录 牛客_连续子数组最大和_线性dp 题目解析 C代码 Java代码 牛客_连续子数组最大和_线性dp 连续子数组最大和_牛客题霸_牛客网 (nowcoder.com) 描述&#xff1a; 给定一个长度为 n的数组&#xff0c;数组中的数为整数。请你选择一个非空连续子数组&#xff0c;使该子数…

Pandas | 通过PUBG数据集进行数据分析并理解函数使用

PUBG数据分析 PUBG数据集train 数据分析iloc和loc 过滤参数人数少的比赛duplicated().count() 和 transform(count)countplot绘图函数 补充&#xff1a;查看判断pd的某一列是否没有重复值方法 1: 使用 duplicated() 方法方法 2: 使用 nunique() 方法方法 3: 使用 value_counts(…

等保测评:如何进行有效的安全合规性审查

等保测评&#xff08;信息安全等级保护测评&#xff09;是一项至关重要的安全合规性审查工作&#xff0c;旨在帮助组织保障信息系统的安全性、合规性&#xff0c;有效应对安全风险&#xff0c;提升整体安全防护水平。下面将从等保测评的流程、意义、应用场景&#xff0c;以及实…

R语言机器学习教程大纲

文章目录 介绍机器学习算法监督学习Supervised Learning分类Classification回归Regression 无监督学习 Unsupervised Learning聚类 Clustering降纬 Dimensionality Reduction相关Association 强化学习Reinforcement Learning模型自由 Model-Free Methods模型驱动 Model-Based M…

Maven--简略

简介 Apache旗下的一款开源项目&#xff0c;用来进行项目构建&#xff0c;帮助开发者管理项目中的jar及jar包之间的依赖&#xff0c;还拥有项目编译、测试、打包的功能。 管理方式 统一建立一个jar仓库&#xff0c;把jar上传至统一的仓库&#xff0c;使用时&#xff0c;配置…

【GIT】.gitignore文件的使用

使用 Visual Studio 开发项目&#xff0c;并使用 Git 将项目推送到 GitLab 时&#xff0c;有一些文件是自动生成的、特定于开发环境的文件&#xff0c;通常不应该被推送到远程仓库。这就是 .gitignore 文件的作用&#xff0c;它可以告诉 Git 忽略这些文件或文件夹。 1. 哪些文…