草庐IT

Git史上最详细教程(详细图解)

普通网友 2023-09-17 原文

目录

Git简介:

什么是Git,它有什么作用?

Git四个区域

?Git四个状态:

.gitignore忽略文件

格式规范:

glob模式的正则表达式:

?操作文件

?上传至云端服务器

远程连接:

从云端拉取项目

Git分支

常用命令:


Git简介:

什么是Git,它有什么作用?

Git简单来说就是代码版本控制系统,通过他可以进行多人开发同一个项目然后讲每个人的代码块合并完成一个大项目,还能控制代码版本记录等。

Git四个区域

  1. 工作区:处理工作的区域(即做项目打代码的区域)
  2. 暂存区:已完成的工作临时存放区域,等待被提交
  3. 本地仓库:存放数据的地方,但是还在本电脑上,若电脑存储空间损坏还是会造成代码消失
  4. Git远程仓库:最终的存放区域,即远程服务器,电脑存储空间损坏也不影响远程仓库数据

Git四个状态:

  1. 未跟踪:文件没有加入到git库中,不参与版本控制,使用git add变为暂存
  2. 已暂存:表示对已修改文件的当前版本做了标记,使之包含在下次提交的列表
  3. 已修改:表示修改了文件,但还没将修改的结果放到暂存区
  4. 已提交:表示文件已经安全地保存在本地Git仓库

新建文件 —> 未跟踪(Untracked)

使用git add .或者git add ‘需要暂存文件名’ —> 已暂存(Staged)

使用git commit将文件放在本地仓库中 —> 已提交(Unmodified)

如果已经提交到本地仓库后修改了文件当前文件状态是 —> 已修改(Modified)

如果已经提交到本地仓库后删除了文件当前状态是 —> 未跟踪(Untracked)

注意:创建git文件之前就创建一个.gitignore用来忽略文件(忽略你不想上传的文件,里面可利用正则表达式)

.gitignore忽略文件

格式规范:

  1. 以#开头的是注释
  2. 以/结尾的是目录
  3. 以/开头防止递归
  4. 以!开头表示取反
  5. 可以使用glob模式进行文件和文件夹的匹配(glob指简化的正则表达式)

glob模式的正则表达式:

  1. 星号*匹配零个或多个任意字符
  2. [abc]匹配任何一个在方括号中的字符(此案例匹配一个a或匹配一个b或匹配一个c)
  3. 问号只匹配一个任意字符
  4. 在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如[0-9]表示匹配所有0到9的数字)
  5. 两个星号**表示匹配任意中间目录(比如a/**/z可以匹配a/z、a/b/c或a/b/c/z等)

# 忽略 index.css 这个文件
index.css

# 忽略 test 目录下所有的文件
test/

操作文件

在项目根目录下利用git init命令创建git本地仓库(显示下面文件表示创建成功)

通过git status查看此目录下文件状态(git status -s简写形式)

上图红色表示文件未被跟踪

通过git add “文件名称”(指定文件放入暂存区) 或者git add .(表示当前所有文件放入暂存区)

绿色的A表示新添加到暂存区的文件

通过git commit -m"文件描述"上传至本地仓库

这说明已经将暂存区的文件传至到本地仓库中了

git commit -a -m“描述消息”这个命令可以跳过暂存区直接存储到本地仓库

我们将其中一个文件信息进行修改

我们修改了pro_01.html中的内容,红色M 表示修改过但没有放入暂存区

我们将修改的文件放入暂存区

绿色的M表示已将修改的文件放入了暂存区

通过git rm --cached 文件名称 移除Git仓库中对应的文件,保留工作区对应的文件

绿色D表示移除的文件,存在红色是因为只移除了本地仓库的文件,工作区的文件未被移除并且处于未被跟踪状态(通过git rm -f 文件名称 来同时移除本地仓库和工作区对应的文件)

通过git log查看所有提交历史(最近的排在最上面)

以上查看的无用信息太多可以用:

git log -2:查看最新两条历史

git log -2 --pretty=oneline:一行显示两条最新历史

git log -2 --oneline:与上个命令一样(对应提交唯一表识长度不一样,比上个命令更短)

git reflog --oneline:与上个命令一样(旧版本一行查看历史)

git log -2 --pretty=format:“%h | %an | %s”:%h提交的简写哈希值 %an作者名 %ar作者修订日期 %s提交说明

通过git reset --hard来跳转到指定历史(CommitID就是提交唯一标识即上图黄色部分)

回到了修改了pro_01.html历史上了,文件夹中删除的pro_01.html又回来了

上传至云端服务器

远程连接:

本文章用gitee做示例,相同的服务器还github等(国外的稍微有点卡)

  1. 先创建一个服务器账号点击新建仓库,创建一个新的云端仓库

建立远程链接

说明已经将项目传至远程服务器中

注意:一定要将文件保存至本地仓库,不然传不上远程服务器

上图说明已经上传至远程服务器

从云端拉取项目

拉取远程项目是需在文件内有.git文件即Git本地仓库

git pull命令从远程拉取(远程最新代码),git clone也能从远程克隆下来

Git分支

先写下分支常用命令,具体操作步骤及图解随后和密钥一同推出


常用命令:

git branch:查看分支,带*表示当前所处分支

git branch 分支名称:创建分支,只创建不使用

git checkout 分支名称:切换分支

git checkout -b分支名称:创建并切换分支

git merge 分支名称:合并分支(将c合并给a,需要在a分支上运行命令是复制分支代码,而不是剪切)

git branch -d 分支名称:删除分支(代码合并完后再删)

git branch -D 分支名称:强制删除,不管你保没保存,没提示的删除(慎用)

注意:删除分支时切走再删(先换船再炸船)

详细讲解关于Git的分支的创建与介绍_AI_huihui的博客-CSDN博客

最后

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

小编已加密:aHR0cHM6Ly9kb2NzLnFxLmNvbS9kb2MvRFVrVm9aSGxQZUVsTlkwUnc==出于安全原因,我们把网站通过base64编码了,大家可以通过base64解码把网址获取下来。

有关Git史上最详细教程(详细图解)的更多相关文章

  1. postman接口测试工具-基础使用教程 - 2

    1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,

  2. 在VMware16虚拟机安装Ubuntu详细教程 - 2

    在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主

  3. git使用常见问题(提交代码,合并冲突) - 2

    文章目录git常用命令(简介,详细参数往下看)Git提交代码步骤gitpullgitstatusgitaddgitcommitgitpushgit代码冲突合并问题方法一:放弃本地代码方法二:合并代码常用命令以及详细参数gitadd将文件添加到仓库:gitdiff比较文件异同gitlog查看历史记录gitreset代码回滚版本库相关操作远程仓库相关操作分支相关操作创建分支查看分支:gitbranch合并分支:gitmerge删除分支:gitbranch-ddev查看分支合并图:gitlog–graph–pretty=oneline–abbrev-commit撤消某次提交git用户名密码相关配置g

  4. hadoop安装之保姆级教程(二)之YARN的配置 - 2

    1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模

  5. ruby - Dropbox 类似 git 的服务——没有 rsync 和 inotify - 2

    关于如何使用git设置类似Dropbox的服务,您有什么建议吗?您认为git是解决此问题的合适工具吗?我在考虑使用git+rush解决方案,你觉得怎么样? 最佳答案 检查这个开源项目:https://github.com/hbons/SparkleShare来自项目的自述文件:Howdoesitwork?SparkleSharecreatesaspecialfolderonyourcomputer.Youcanaddremotelyhostedfolders(or"projects")tothisfolder.Theseprojec

  6. ruby - 混帐 & ruby : How can I unset the GIT_DIR variable from inside a ruby script? - 2

    我编写了一个非常简单的“部署”脚本,作为我的裸git存储库中的post-updateHook运行。变量如下livedomain=~/mydomain.comstagingdomain=~/stage.mydomain.comgitrepolocation=~/git.mydomain.com/thisrepo.git(bare)core=~/git.mydomain.com/thisrepo.gitcore==addedremoteintoeachlive&stagegitslive和stage都初始化了gitrepos(非裸),我已经将我的裸仓库作为远程添加到它们中的每一个(名为co

  7. ruby - 让 bundler 使用 http : instead of git:? - 2

    我正在安装gitlabhq,并且在Gemfile中有对某些资源的“git://...”的引用。但是,我在公司防火墙后面,所以我必须使用http://。我可以手动编辑Gemfile,但我想知道是否有另一种方法告诉bundler使用http://作为git存储库? 最佳答案 您可以通过运行gitconfig--globalurl."https://".insteadOfgit://或通过将以下内容添加到~/.gitconfig:[url"https://"]insteadOf=git://

  8. ruby - 在 RUBY 上的 PADRINO 框架上使用 RSPEC 进行测试的教程 - 2

    我是Ruby新手,并被要求在我们的新项目中使用它。我们还被要求使用Padrino(Sinatra)作为后端/框架。我们被要求使用Rspec进行测试。我一直在寻找可以指导在Padrino上使用RspecforRuby的教程。我得到的主要是引用RoR。但是,我需要RubyonPadrino。请在任何入门/指南/引用/讨论等方面指导我。如有不妥之处请指正。可能是我没有针对我的问题搜索正确的词/短语组合。我正在使用Ruby1.9.3和Padrinov.0.10.6。注意:我还提到了SOquestion,但它没有帮助。 最佳答案 我没用过Pa

  9. ruby-on-rails - 安装 active admin 时 activeadmin.git (at master) is not yet checked out 错误 - 2

    Activeadmingem已添加到我的rails项目中,但每次我尝试安装railsgactive_admin:install时,我都会收到类似的错误git://github.com/activeadmin/activeadmin.git(atmaster)isnotyetcheckedout.Runbundleinstallfirst.我肯定在运行“railsgactive_admin:install”之前运行了bundle。运行“bundleshow”后,我看到我已将“*activeadmin(1.0.0.pre3f916d6)”添加到我的项目中,但不断收到此错误消息。我的gem文

  10. 100个python算法超详细讲解:画直线 - 2

    1.问题描述使用Python的turtle(海龟绘图)模块提供的函数绘制直线。2.问题分析一幅复杂的图形通常都可以由点、直线、三角形、矩形、平行四边形、圆、椭圆和圆弧等基本图形组成。其中的三角形、矩形、平行四边形又可以由直线组成,而直线又是由两个点确定的。我们使用Python的turtle模块所提供的函数来绘制直线。在使用之前我们先介绍一下turtle模块的相关知识点。turtle模块提供面向对象和面向过程两种形式的海龟绘图基本组件。面向对象的接口类如下:1)TurtleScreen类:定义图形窗口作为绘图海龟的运动场。它的构造器需要一个tkinter.Canvas或ScrolledCanva

随机推荐