首页 > 其他分享 >git学习

git学习

时间:2023-06-26 22:58:26浏览次数:33  
标签:文件 git 仓库 学习 版本控制 本地 分支 客户端

1. 什么是git

git是一种分布式版本控制系统,属于软件配置管理SCM Software Configuration Management)

  • SCM是指通过执行版本控制、变更控制的规程,以及使用合适的配置管理软件来保证所有配置项的完整性和可跟踪性。

2. 版本控制(version control)

  1. 版本的作用:保存重要的历史记录,若出现错误便于恢复历史数据
  2. 版本控制软件的基本功能
    • 保存和管理文件
    • 提供客户端工具进行访问
    • 比较不同版本文件
  3. 集中式版本控制
    集中式需要解决文件冲突问题,即多个人同时修改一个文件,导致相互覆盖。不同的集中式版本控制软件有不同的解决方法
    • VSS用来解决,当一个用户在修改文件的时候,中央服务器上的文件被锁定,其他用户不能修改该文件
    • CVS、SVN会指定不同的用户修改同一文件不同行的权限,最后将每个人对不同行的修改进行合并
  4. 分布式版本控制
    集中式版本控制的另一大问题是过度依赖中央服务器,如果中央服务器发生损坏会对项目带来严重的负面影响。
    分布式服务器有本地仓库。这样,如果中央服务器发生故障,可以用本地的数据仓库进行对其恢复,提高了数据的安全性。
    git.png

3. github desktop客户端

在客户端中选择本地路径,点击创建仓库(repository),即可创建本地仓库

commit 提交

进入本地仓库的目录下,对文件进行修改,或者创建、删除文件后,客户端会将目录下的文件与本地仓库进行对比,在客户端上会显示文件的差异。
点击commit,并且填写comment描述修改的原因,然后客户端会显示No local changes,表示我们对文件的操作已经同步到了本地仓库。

重点

  1. 仓库路径和本地仓库不是同一个概念!
  2. commit相当于将本地路径中改动提交到本地仓库

History 查看历史提交记录

在客户端中点击History,从上到下是最近到过去的文件改动记录。

版本号

对文件进行操作并提交,并不是将原有的文件覆盖,而是采用不同的版本号对不同文件进行编码git采用40个16进制的数字作为文件版本号

branch 分支(多人协作)

分支相当于仓库的一个副本,在多人协作时每个人只对自己的那个分支进行操作,最后对分支进行合并(如果不同人对同一文件可能对产生冲突,需要在合并的时候解决)
image.png

在下面的图示中,

  • 王五是项目经理,负责管理仓库的main分支
  • 张三开发user模块功能
  • 李四开发order模块功能
    两人分别在自己的分支上进行commit。张三和李四的branch是基于王五管理的main分支创建的

image.png
image.png

创建完成后有三个分支branch
image.png

对不同的分支进行操作,需要在客户端上选择相应的分支,点击show in explorer,跳转到本地路径,在本地进行文件操作,最后在客户端commit到相应的分支。

merge 分支合并

选择不同人开发的分支,合并到main分支(choose branch to merge into main)

conflict 文件冲突

如果多个分支对同一文件进行了修改,合并的时候会出现文件冲突(file conflict),需要人为地进行冲突处理,决定冲突文件应该如何处理。

标签:文件,git,仓库,学习,版本控制,本地,分支,客户端
From: https://www.cnblogs.com/hifrank/p/17507351.html

相关文章

  • 学习python日记
    python主要是看着小甲鱼的视频开始的变量和字符串1temp=int(input("这次数学考试的成绩:"))23iftemp==100:4print("6")5else:6print("2")7print("4")在编写这个程序时,忘了“:”和int(),一个是格式的错误,还有一个细节上的错误然后记录一下,print函数......
  • 6月26日java&React学习日记
    今日学习java的异常处理,了解了多try,catch,以及单try多catch(需注意子类在上父类在下)异常捕获的方法。同时也学习了React框架,该框架确实比较好用但上手难度较高,需理解其组件化原理,改框架涉及ES6比较深,需加强js或ts的学习。 ......
  • Typora PicGo-Core gitee
    参考:(41条消息)Typora+PicGo-core插入图片自动上传,gitee,gitgub,sm.ms三种免费图床_jaymier的博客-CSDN博客(41条消息)Node.js下载安装及环境配置教程【超详细】_nodejs下载安装教程_WHF__的博客-CSDN博客1、安装Node.js下载|Node.js中文网(nodejs.cn)傻瓜式,直接下一步,可......
  • 莫队 学习笔记
    莫队学习笔记引入莫队算法是一种优美的暴力算法,可以用来处理大量的区间询问。前提是,维护的信息可以高效地插入、删除。我们就以一道题为例,来初探莫队:洛谷P3901数列找不同题意:给定一个数列,\(q\)次询问,问区间\([l,r]\)内的数是否各不相同。首先,我们很容易想到,问某个区间......
  • Java学习——MarkDown语法学习
    MarkDown基础学习——一级标题(#加空格)二级标题(##加空格)三级标题(###加空格)四级标题(####加空格)...直到六级标题字体hello,word!——粗体两边加2星号hello,word!——斜体两边加1星号hello,word!——斜体加粗两边加3星号hello,word!——废弃两边加2波浪线引用路漫漫......
  • Git-stash-rm---cache-暂存-删除
    gitstash当开发到一半时,需要pull远端的代码,但这会覆盖本地的代码因此,需要暂存本地的代码gitstashgitpullgitstachpop(处理完pull代码之后,把暂存的代码pop出来)查看gitstashlistgitrm删除远端的文件gitrmfile(会同时删除本地的原始文件)......
  • 学习爬虫入门3,正则表达式,代码复现
    正则表达式写回调函数def (self,response) ......
  • Freertos学习03-Task优先级
    一、前言FreeRTOS是一个流行的实时操作系统,它允许用户创建多个任务并在它们之间共享处理器时间。在FreeRTOS中,任务的优先级别是非常重要的,因为它决定了任务在系统中的执行顺序。二、任务优先级特点FreeRTOS中的任务优先级别是一个整数,范围从0到configMAX_PRIORITIES-1,其......
  • 如何建立Linux与git的连接?
    @[Toc]本文以Xshell为案例进行与git的连接!建立连接三板斧:add,commit,pushLinux与git远程连接的方法:1.设置全局的用户名和邮箱gitconfig--globaluser.name"你的用户名"gitconfig--globaluser.email"你的邮箱"2.先创建本地文件夹mkdirtest3.cd进入本地仓库cdtest4......
  • Kong入门学习实践(5)API网关路由转发
    最近在学习Kong网关,因此根据老习惯,我会将我的学习过程记录下来,一来体系化整理,二来作为笔记供将来翻看。由于我司会直接使用Kong企业版,学习过程中我会使用Kong开源版。本篇,我们学习快速配置一个最常见的基本功能:API网关场景下的路由转发。API网关路由需求在API网关的需求场景中,......