【Git】版本控制器详解之git的概念和基本使用

这篇具有很好参考价值的文章主要介绍了【Git】版本控制器详解之git的概念和基本使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

初始Git

为了能够更⽅便我们管理不同版本的⽂件,便有了版本控制器。所谓的版本控制器,就是⼀个可以记录⼯程的每⼀次改动和版本迭代的⼀个管理系统,同时也⽅便多⼈协同作业。
目前最主流的版本控制器就是Git。Git可以控制电脑上所有格式的文件,例如doc、excel、dwg、dgn、rvt等等。对于开发⼈员来说,Git最重要的就是可以帮助我们管理软件开发项⽬中的源代码文件

git的安装

Centos7.9下安装git

查看是否安装git
git --version 
//没有则使用yum安装
sudo yum -y install git

git的基本使用

初始化本地仓库

git init

执行完毕后会生成一个隐藏的.git文件,内含有配置信息

配置本地仓库

当安装Git后⾸先要做的事情是设置你的用户名、e-mail地址

#设置配置
[wmh@pDaD gitcode]$ git config user.name "wmh"
[wmh@pDaD gitcode]$ git config user.email "66666@qq.com"
#查看配置
[wmh@pDaD gitcode]$ git config -l
user.email=66666@qq.com
user.name=wmh
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true

#删除配置
[wmh@pDaD gitcode]$ git config --unset user.name
[wmh@pDaD gitcode]$ git config --unset user.email
[wmh@pDaD gitcode]$ git config -l
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true

配置全局生效
全局的配置必须使用全局的删除

[wmh@pDaD gitcode]$ git config --global user.name "wmh"
[wmh@pDaD gitcode]$ git config --global user.email "66666@qq.com"

[wmh@pDaD gitcode]$ git config --global --unset user.name
[wmh@pDaD gitcode]$ git config --global --unset user.email

三区协作

【Git】版本控制器详解之git的概念和基本使用,Linux系统编程,git
.git:版本库,虽然在工作区,但是不属于工作区
code:工作区;用来写代码的文件或者是目录
【Git】版本控制器详解之git的概念和基本使用,Linux系统编程,git

刚创建的myfile是不会被git管理起来的,需要先add到暂存区,然后commit到版本库的master分支下,暂存区和master下存储的都是git对象

添加—add

git add .  #把当前目录所有文件添加到暂存区
git commit -m “注释” #把暂存区内容交付给版本库
git log #显示日志
[wmh@pDaD code]$ git add .
[wmh@pDaD code]$ git commit -m "first file"
[master (root-commit) bd3f11d] first file
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 myfile
[wmh@pDaD code]$ touch myfile2
[wmh@pDaD code]$ git add myfile2
[wmh@pDaD code]$ git commit -m "add new file"
[master 0857536] add new file
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 myfile2
[wmh@pDaD code]$ git log
commit 0857536013e6b5c890d2fa0ba454041e30bfab15
Date:   Wed Aug 9 17:16:36 2023 +0800

    add new file

commit bd3f11df093e0e559697f0a2989a32843c30783b
Date:   Wed Aug 9 17:15:41 2023 +0800

    first file
[wmh@pDaD code]$ git log --pretty=online
fatal: invalid --pretty format: online
[wmh@pDaD code]$ git log --pretty=oneline
0857536013e6b5c890d2fa0ba454041e30bfab15 add new file
bd3f11df093e0e559697f0a2989a32843c30783b first file

观察.git文件结构变化
【Git】版本控制器详解之git的概念和基本使用,Linux系统编程,git
在.git文件里,可以看到出现了index(暂存区),前面说道HEAD指向master,通过cat .git/HEAD查到了master;接着查看master内容结果是一串哈希摘要,并且与object第一个字符串相同,其实就是git对象,通过深度查阅哈希摘要发现有tree、parent等字段,parent对应的是上一个commit对象,再细细追究,就是修改的文件内容

修改文件–status|diff

git status 命令⽤于查看在你上次提交之后是否有对⽂件进⾏再次修改
git diff [file] 命令⽤来显示暂存区和⼯作区文件的差异
【Git】版本控制器详解之git的概念和基本使用,Linux系统编程,git
也可以使⽤ git diff HEAD – [file] 命令来查看版本库和⼯作区⽂件的区别
当使用git add之后,再次查看,发现少了一行,完成完整的操作流程,最后就会显示没用什么可以commit的了
【Git】版本控制器详解之git的概念和基本使用,Linux系统编程,git

版本回退–reset

执行 git reset 命令⽤于回退版本,可以指定退回某⼀次提交的版本。
要解释⼀下“回退”本质是要将版本库中的内容进行回退,⼯作区或暂存区是否回退由命令参数决定:
git reset 命令语法格式为: git reset [--soft | --mixed | --hard] [HEAD]
• --mixed 为默认选项,使⽤时可以不⽤带该参数。该参数将暂存区的内容退回为指定提交版本内
容,⼯作区⽂件保持不变。
• --soft 参数对于⼯作区和暂存区的内容都不变,只是将版本库回退到某个指定版本。
• --hard 参数将暂存区与⼯作区都退回到指定版本。切记⼯作区有未提交的代码时不要用这个命
令,因为⼯作区会回滚,你没有提交的代码就再也找不回了,所以使用该参数前⼀定要慎重。
• HEAD 可直接写成commit id,表示指定退回的版本
【Git】版本控制器详解之git的概念和基本使用,Linux系统编程,git
演示–hard
【Git】版本控制器详解之git的概念和基本使用,Linux系统编程,git
git log查看提交日志,找到以前的commit id
使用git reset进行回退到之前的版本,如果记得回退之前的commit id,可以再次回退
使用git reflog用于查看本地提交记录,简短的commit id也可以进行版本回退

撤销修改

情况⼀:对于工作区的代码,还没有add

git checkout -- myfile
[wmh@pDaD code]$ cat myfile
first line
second line
third line
[wmh@pDaD code]$ git checkout -- myfile
[wmh@pDaD code]$ cat myfile
first line
second line

情况⼆:已经 add ,但没有 commit
方案一:使用git reset -- mixed+git checkout
方案二:使用git reset -- hard

[wmh@pDaD code]$ cat myfile
first line
second line
shhhshsh

[wmh@pDaD code]$ git add myfile
[wmh@pDaD code]$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#	modified:   myfile
#
[wmh@pDaD code]$ git reset --mixed HEAD
Unstaged changes after reset:
M	myfile
[wmh@pDaD code]$ git status
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#	modified:   myfile
#
no changes added to commit (use "git add" and/or "git commit -a")

[wmh@pDaD code]$ git checkout -- myfile
[wmh@pDaD code]$ git status
# On branch master
nothing to commit, working directory clean

情况三:已经 add ,并且也 commit 了,但还未push
直接写HEAD是当前版本
HEAD^-----上一版本
HEAD^^----上上一版本

#回退到上一个版本
git reset --hard HEAD^

删除文件

已经 add ,并且也 commit 了的文件,要删⽂件,除了要删工作区的⽂件,还要清除版本库的⽂件。
第一步:使用 git rm file
第二步:git commit文章来源地址https://www.toymoban.com/news/detail-639192.html

[wmh@pDaD code]$ git rm myfile3
rm 'myfile3'
[wmh@pDaD code]$ ll
total 4
-rw-rw-r-- 1 wmh wmh 23 Aug 10 17:04 myfile
-rw-rw-r-- 1 wmh wmh  0 Aug 10 16:18 myfile2
[wmh@pDaD code]$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#	deleted:    myfile3
#
[wmh@pDaD code]$ git commit -m "delete file3"
[master dda18c2] delete file3
 1 file changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 myfile3
[wmh@pDaD code]$ git status
# On branch master
nothing to commit, working directory clean

到了这里,关于【Git】版本控制器详解之git的概念和基本使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • K8S中Deployment控制器的概念、原理解读以及使用技巧

    Deployment官方文档: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/ Deployment是kubernetes中最常用的资源对象,为ReplicaSet和Pod的创建提供了一种声明式的定义方法, 在Deployment对象中描述一个期望的状态,Deployment控制器就会按照一定的控制速率把实际状态改成期望状态,

    2024年02月21日
    浏览(47)
  • Linux 中断子系统中GIC 中断控制器基本分析

    GIC 是 ARM 公司给 Cortex-A/R 内核提供的一个中断控制器,类似 Cortex-M 内核(STM32)中的 NVIC。 GIC:Generic Interrupt Controller,通用中断控制器。 NVIC:Nested Vectored Interrupt Controller,嵌套中断向量控制器。 目前 GIC 有 4 个版本:V1~V4,V1 是最老的版本,已经被废弃了。V2~V4 目前正在大

    2024年02月07日
    浏览(49)
  • VScode 国内下载源 以及 nvm版本控制器下载与使用

    VScode 国内下载源 进入官网 https://code.visualstudio.com/ 点击下载 复制下载链接到新的浏览器标签 将地址中的/stable前的az764295.vo.msecnd.net换成vscode.cdn.azure.cn,再回车就会直接在下载列表啦。 参考大神博客 2.使用nvm 对 node 和npm进行版本控制 安装nvm 下载链接 https://hub.nuaa.cf//coreybu

    2024年02月10日
    浏览(46)
  • Spring MVC学习随笔-控制器(Controller)开发详解:控制器跳转与作用域(一)

    学习视频:孙哥说SpringMVC:结合Thymeleaf,重塑你的MVC世界!|前所未有的Web开发探索之旅 3.流程跳转 在web.xml里添加Servlet然后执行 可以看到通过url拼接可以获取传递的数据 四种跳转指的是:在SpringMVC中控制器与JSP或者控制器与控制器之间的跳转。 Controller - - forward — JSP Co

    2024年02月05日
    浏览(57)
  • Spring MVC学习随笔-控制器(Controller)开发详解:控制器跳转与作用域(二)视图模板、静态资源访问

    学习视频:孙哥说SpringMVC:结合Thymeleaf,重塑你的MVC世界!|前所未有的Web开发探索之旅 衔接上文Spring MVC学习随笔-控制器(Controller)开发详解:控制器跳转与作用域(一) SpingMVC中request作用域的处理 代码 Model、ModelMap相关细节分析 通过Model、ModelMap进行作用域处理,可以解决

    2024年02月05日
    浏览(46)
  • 【云原生|Kubernetes】14-DaemonSet资源控制器详解

    ​ 在 Kubernetes 中,DaemonSet 是一种用于在节点上运行指定的 Pod 的控制器(Controller)。与 ReplicaSet 或 Deployment 不同,DaemonSet 不是为了扩展 Pod 数量而创建的,而是为了在每个节点上运行一个实例或多个实例的 Pod。 ​ DaemonSet 通常用于在 Kubernetes 集群中运行一些系统级别的服务

    2024年02月13日
    浏览(33)
  • 【Kubernetes资源篇】DaemonSet控制器入门实战详解

    中文官方文档参考: 1、DaemonSet控制器是什么? Kubernetes中的DaemonSet(简写ds)控制器是一种 用来运行守护进程应用程序的控制器,它确保每个Node节点都运行具有指定配置的 Pod副本,当Node节点的加入或删除DaemonSet控制器会自动创建或删除相应的 Pod副本。 特点: 每个节点只运行

    2024年02月10日
    浏览(69)
  • 【云原生|Kubernetes】13-Deployment资源控制器详解

    kubernetes中有很多资源控制器,这些资源控制器我们只说一些重要且常用的。在介绍Deploymen之前,我们会逐个介绍这些控制器。 Pod控制器介绍 ​ Pod控制器是用于实现管理pod的中间层,确保pod资源符合预期的状态,pod的资源出现故障时,会尝试 进行重启,当根据重启策略无效

    2024年02月16日
    浏览(43)
  • 【Kubernetes资源篇】Replicaset控制器入门实战详解

    官方中文参考文档: ReplicaSet是k8s中一种资源对象,简写 rs , 用于管理Pod副本数量和健康状态,在 spec.replicas 字段中可以定义Pod副本数量,ReplicaSet会始终保持Pod在指定数量 ,当发现Pod数量大于副本数量时,会移除多出的Pod,当发现Pod小于副本数量会自动创建Pod,使其始终维

    2024年02月09日
    浏览(43)
  • 【Kubernetes运维篇】RBAC之准入控制器详解

    中文官方参考文档: 1、ResourceQuota是什么? ResourceQuota准入控制器是K8S中内置的准入控制器,默认该控制器是启用状态, 主要功能是限制名称空间下的资源使用 ,防止在一个名称空间下的Pod占用过多的资源, 简单理解就是针对名称空间限制用户资源的使用。 2、限制CPU、内存

    2024年02月16日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包