Git版本控制工具

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

版本控制(Version control),是维护工程蓝图的标准作法,能追踪工程蓝图从诞生⼀直到定案的过程。此外,版本控制也是⼀种软件工程技巧,借此能在软件开发的过程中,确保由不同人所编辑的同⼀程序文件都得到同步透过文档控制,能记录任何工程项目内各个模块的改动历程,并为每次改动编上序号⼀种简单的版本控制形式。简言之,你的修改只要提到到版本控制系统,基本都可以找回,版本控制系统就像⼀台时光机器,可以让你回到任何⼀个时间点。
版本控制系统在当今的软件开发中,被认为是理所当然的配备⼯具之⼀,根据类别可以分成:
  • 本地版本控制系统
  • 集中式版本控制系统
  • 分布式版本控制系统
Git 是目前世界上最先进的分布式版本控制系统,旨在快速高效地处理从小型到大型项目的所有事务
特性:易于学习,占用内存小,具有闪电般快速的性能
使用  Git Gitlab 搭建版本控制环境是现在互联网公司最流行的版本控制方式
当我们通过 git init 创建或者 git clone ⼀个项目的时候,项目目录会隐藏⼀个 .git 子目录,其作用是用来跟踪管理版本库的 Git 中所有数据,在存储前都计算校验和,然后以校验和来引用,所以在我们修改或者删除⽂件的时候, git 能够知道 Git 用以计算校验和的机制叫做 SHA-1 散列(hash,哈希), 这是⼀个由 40 个⼗六进制字符(0-9 和 a-f)组成字符串,基于 Git 中⽂件的内容或目录结构计算出来。 当我们修改⽂件的时候, git 就会修改文件的状态,可以通过 git status  进行查询,状态情况如下:
  • 已修改(modified):表示修改了⽂件,但还没保存到数据库中。
  • 已暂存(staged):表示对⼀个已修改⽂件的当前版本做了标记,使之包含在下次提交的快照中。
  • 已提交(committed):表示数据已经安全的保存在本地数据库中。
文件状态对应的不同状态的文件在 Git 中处于不同的⼯作区域,主要分成了四部分:
  • ⼯作区:相当于本地写代码的区域,如 git clone ⼀个项⽬到本地,相当于本地克隆了远程仓库项目的⼀个副本
  • 暂存区:暂存区是⼀个文件,保存了下次将提交的文件列表信息,⼀般在 Git 仓库目录中
  • 本地仓库:提交更新,找到暂存区域的⽂件,将快照永久性存储到 Git 本地仓库
  • 远程仓库:远程的仓库,如 github

Git版本控制工具,git,前端,全文检索

配置  

Git 自 带⼀个 git config 的⼯具来帮助设置控制 Git 外观和行为的配置变量,在我们安装完 git 之后,第⼀件事就是设置你的用户名和邮件地址后续每⼀个提交都会使用这些信息,它们会写⼊到你的每⼀次提交中,不可更改,设置提交代码时的用户信息命令如下:
  • git config [--global] user.name "[name]"
  • git config [--global] user.email "[email address]"

日常基本操作

 在日常工作中,代码常用的基本操作如下:

  • git init 初始化仓库,默认为 master 分支
  • git add . 提交全部文件修改到缓存区
  • git add <具体某个⽂件路径+全名> 提交某些文件到缓存区
  • git diff 查看当前代码 add后,会 add 哪些内容
  • git diff --staged查看现在 commit 提交后,会提交哪些内容
  • git status 查看当前分支状态
  • git pull <远程仓库名> <远程分⽀名> 拉取远程仓库的分支与本地当前分支合并
  • git pull <远程仓库名> <远程分⽀名>:<本地分⽀名> 拉取远程仓库的分支与本地某个分支合并
  • git commit -m "<注释>" 提交代码到本地仓库,并写提交注释
  • git commit -v 提交时显示所有diff信息
  • git commit --amend [file1] [file2] 重做上⼀次commit,并包括指定文件的新变化
关于提交信息的格式,可以遵循以下的规则:
  • feat: 新特性,添加功能
  • fix: 修改 bug
  • refactor: 代码重构
  • docs: 文档修改
  • style: 代码格式修改, 注意不是 css 修改
  • test: 测试用例修改
  • chore: 其他修改, 比如构建流程, 依赖管理

 分⽀操作

  • git branch 查看本地所有分支
  • git branch -r 查看远程所有分支
  • git branch -a 查看本地和远程所有分支
  • git merge <分⽀名> 合并分支
  • git merge --abort 合并分支出现冲突时,取消合并,一切回到合并前的状态
  • git branch <新分支名> 基于当前分支,新建⼀个分支
  • git checkout --orphan <新分支名> 新建⼀个空分支(会保留之前分支的所有⽂件)
  • git branch -D <分支名> 删除本地某个分支
  • git push <远程库名> :<分支名> 删除远程某个分支
  • git branch <新分支名称> <提交ID> 从提交历史恢复某个删掉的某个分支
  • git branch -m <原分支名> <新分支名> 分支更名
  • git checkout <分支名> 切换到本地某个分支
  • git checkout <远程库名>/<分支名> 切换到线上某个分支
  • git checkout -b <新分支名> 把基于当前分支新建分支,并切换为这个分支

远程同步 

远程操作常见的命令:
  • git fetch [remote] 下载远程仓库的所有变动
  • git remote -v 显示所有远程仓库
  • git pull [remote] [branch] 拉取远程仓库的分支与本地当前分支合并
  • git fetch 获取线上最新版信息记录,不合并
  • git push [remote] [branch] 上传本地指定分支到远程仓库
  • git push [remote] --force 强支推送当前分支到远程仓库,即使有冲突
  • git push [remote] --all 推送所有分支到远程仓库

撤销

git checkout [file] 恢复暂存区的指定文件到工作区
  • git checkout [commit] [file] 恢复某个commit的指定⽂件到暂存区和⼯作区
  • git checkout . 恢复暂存区的所有⽂件到⼯作区
  • git reset [commit] 重置当前分⽀的指针为指定commit,同时重置暂存区,但⼯作区不变
  • git reset --hard 重置暂存区与⼯作区,与上⼀次commit保持⼀致
  • git reset [file] 重置暂存区的指定⽂件,与上⼀次commit保持⼀致,但⼯作区不变
  • git revert [commit] 后者的所有变化都将被前者抵消,并且应⽤到当前分⽀
reset :真实硬性回滚,目标版本后面的提交记录全部丢失
revert :同样回滚,这个回滚操作相当于⼀个提价,目标版本后面的提交记录

 存储操作

你正在进行项目中某⼀部分的工作,里面的东西处于⼀个比较杂乱的状态,而你想转到其他分支上进行⼀些⼯作,但又不想提交这些杂乱的代码,这时候可以将代码进行存储

  • git stash 暂时将未提交的变化移除
  • git stash pop 取出储藏中最后存入的⼯作状态进行恢复,会删除储藏
  • git stash list 查看所有储藏中的⼯作
  • git stash apply <储藏的名称> 取出储藏中对应的⼯作状态进行恢复,不会删除储藏
  • git stash clear 清空所有储藏中的工作
  • git stash drop <储藏的名称> 删除对应的某个储藏

复杂内容下一章节更新! 文章来源地址https://www.toymoban.com/news/detail-828919.html

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

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

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

相关文章

  • Lucene和Solr和Elasticsearch区别,全文检索引擎工具包Lucene索引流程和搜索流程实操

    Lucene和Solr和Elasticsearch区别,全文检索引擎工具包Lucene索引流程和搜索流程实操

    我们生活中的数据总体分为两种: 结构化数据和非结构化数据 。 结构化数据 :指具有固定格式或有限长度的数据,如数据库,元数据等。 非结构化数据 :指不定长或无固定格式的数据,如 互联网数据、邮件,word文档等。 非结构化数据又有一种叫法叫全文数据 按照数据的

    2024年02月03日
    浏览(12)
  • 全文检索-Elasticsearch-进阶检索

    全文检索-Elasticsearch-进阶检索

    本文记录谷粒商城高级篇的 Elasticsearch 进阶检索部分,续上之前记录的 Elasticsearch入门篇。 ES 支持两种基本方式检索 : 一个是通过使用 REST request URI 发送搜索参数(uri + 检索参数) 另一个是通过使用 REST request body 来发送它们(uri + 请求体) 请求体中写查询条件,语法: 示例

    2024年02月03日
    浏览(8)
  • 【全文检索】sqlite-fts4和pgsql的全文检索对比

    【全文检索】sqlite-fts4和pgsql的全文检索对比

    因为是Android项目,老系统中的全文检索是采用sqlite自带的fts4,然而后续由于地图要素全部转为线上,全文检索也需要同步在线查询,所以将整个全文检索的功能迁移到pgsql中。目前这块功能基本结束,这里来对两种全文检索方案做一个对比总结。 相比与fts5,fts4的好处是原生

    2024年02月05日
    浏览(6)
  • 全文检索-Es-初步检索(三)

    全文检索-Es-初步检索(三)

    #为jmeter返回的结果 jmeter测试结果 请求头 http请求 put 返回结果 再次发送请求 post不带/带id保存 不带id 结果 二次请求结果 带id保存 结果 二次请求结果 结论 发送请求 查询-查看结果树 增加判断,确定是否修改 结果 查看修改是否成功 结果 更新文档 post/put带_update的请求(会比

    2024年02月14日
    浏览(7)
  • Elasticsearch 全文检索 分词检索-Elasticsearch文章四

    Elasticsearch 全文检索 分词检索-Elasticsearch文章四

    https://www.elastic.co/guide/en/enterprise-search/current/start.html https://www.elastic.co/guide/en/elasticsearch/reference/7.17/query-dsl-match-query.html Full text Query中,我们只需要把如下的那么多点分为3大类,你的体系能力会大大提升 很多api都可以查得到,我们只要大概知道有支持哪些功能 Elasticsearch 执行

    2024年02月14日
    浏览(13)
  • 实现全文检索的方法

    实现网站全文检索功能,可以采取多种方法,从简单的基于数据库的搜索到使用专门的全文检索系统。以下是一些常见的实现全文检索的方法: 1. **数据库全文索引**:    如果你的网站后端使用的是关系型数据库(如MySQL),大多数数据库管理系统都提供了全文索引的功能。

    2024年04月26日
    浏览(7)
  • ElasticSearch-全文检索

    ElasticSearch-全文检索

    https://www.elastic.co/cn/what-is/elasticsearch 全文搜索属于最常见的需求,开源的Elasticsearch是目前全文搜索引擎的首选。 它可以快速地储存、搜索和分析海量数据。 维基百科、StackOverflow、Github都采用它。 Elastic的底层是开源库Lucene。但是,你没法直接用Lucene,必须自己写代码去调用

    2024年04月17日
    浏览(12)
  • mysql全文检索使用

    mysql全文检索使用

    数据库数据量10万左右,使用like \\\'%test%\\\'要耗费30秒左右,放弃该办法 使用mysql的全文检索 第一步:建立索引 首先修改一下设置: my.ini中ngram_token_size = 1 可以通过    show variables like \\\'%token%\\\';来查看 接下来建立索引:alter  table 表名 add fulltext titlefull (字段名) with parser ngram; 第二步

    2024年02月12日
    浏览(8)
  • MySQL中文全文检索

    常规数据库搜索都是用 like 语句,但是like 语句是不能利用索引的,查询效率极其低下。这也就是为什么很多功能都只提供标题搜索的原因,因为如果搜索内容,几万数据就跑不动了。 Mysql 全文索引是专门为了解决模糊查询提供的,可以对整篇文章预先按照词进行索引,搜索

    2024年02月14日
    浏览(9)
  • MySQL——全文检索

    MySQL——全文检索

    不是所有的数据表都支持全文检索 MySQL支持多种底层数据库引擎,但是并非所有的引擎支持全文检索 ,目前最常用引擎是是MyISAM和InnoDB;前者支持全文检索,后者不支持。 表productnotes : 1. 查询包含 rabbit 的行,并按照相关性排序  2.显示每一条的相关性值 3.有heavy 但是没有

    2024年04月15日
    浏览(10)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包