您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

5分钟熟悉git工具

时间:2022-10-20 16:29:13  来源:网易号  作者:5分钟IT入门

【写在最前】

我们在平时的编程学习中,经常会接触到“版本控制”这个概念。

目前业界的开发团队,基本都会从 GIT 、 SVN 两种主流版本控制系统中选择一个在团队内部使用。

两个软件设计思路不同,各有利弊。

通过本文知识,让我们花5分钟时间学习一下git工具及其常用命令,相信聪明的你,看完一定会有收获!

【正文开始】

# 定义

Git 是一个开源的“分布式”版本控制系统,跟SVN不同,他并不需要一个集中式的中央代码服务器的支持。

# 安装

windows版: https://npm.taobao.org/mirrors/git-for-windows/

linux版: https://www.kernel.org/pub/software/scm/git/git-2.8.1.tar.gz (或 yum -y install git-core)

# 基本概念

想学好git,必须要理解版本库、暂存区、工作区概念

版本库:.git隐藏目录是 Git 的版本库

暂存区:对应版本库中名为index的二进制文件(另有stage一说,概念相同)

工作区:就是你在电脑里能正常看到的工作目录。

三者关系如下图所示:

 

  1. 图中可看出 "HEAD" 是指向 master 分支的一个"游标"(图示的命令中出现 HEAD 的地方可以用 master 来替换)
  2. 当对工作区修改(或新增)的文件执行git add命令时,暂存区的目录树被更新;
  3. 当执行提交操作git commit命令时,暂存区的目录树写到master版本库(即 master 指向的目录树就是提交时暂存区的目录树)
  4. 当执行git reset HEAD命令时,暂存区的目录树被 master 分支指向的目录树所替换,但是工作区不受影响。
  5. 当执行git rm --cached命令时,会直接从暂存区删除文件,工作区不受影响。
  6. 当执行git checkout .或者git checkout --命令时,会用暂存区全部或指定的文件替换工作区的文件 (这个操作有一定危险性,会丢失工作区未add的改动)
  7. 当执行git checkout HEAD .或者git checkout HEAD命令时,会用 HEAD 指向的 master 分支中的全部或者部分文件同时替换暂存区和以及工作区中的文件。 (这个操作有一定危险性,会同时丢失工作区和暂存区的改动)

 

# 常用命令

Git 常用命令有6个,分别是:

git clonegit pushgit addgit commitgit checkoutgit pull

使用过程如下图所示:

再附上另一张图,加深你的理解:

# 分支管理

每一种版本控制系统都以某种形式支持分支,一个分支代表一条独立的开发线。

使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。

创建分支命令:

 

git branch (branchname)

 

切换分支命令:

 

git checkout (branchname)

 

删除分支命令:

 

git branch -d (branchname)

 

合并分支命令:

 

git merge (branchname)

 

注意:合并分支过程中,可能会有代码冲突,此时必须手动解决后重新通过git add+git commit命令提交

#版本回退(穿梭)

人人都会犯错误,版本回退功能给了我们犯错后改正的机会。

版本回退,需要区分两种情形:
1)如果还没有 commit ,则建议用 git checkout 命令进行指定文件错误恢复;
2)如果已经commit,则需要先用 git log 命令列出所有 commitId, 然后利用 reset 命令进行恢复;

命令语法为: git reset --hard

 

注1: --hard: commit 和 index都回退(推荐) –-soft:只回退commit,不回退index暂存区 --mixed:混合模式(默认值,但因为工作区没变化不直观,所以不推荐)
注2: reset 是全部回退(之后的commit记录会被直接清除) revert 则只回退指定的 commitId (单次),其余 commit 记录不变

 

特别注意:

不建议在已经commit的情况下利用 checkout 回退(因为二次修改会有detached HEAD游离态的问题)

 


detached HEAD 游离态产生的原因:
checkout head 命令原理是将head从master分支指向了某个具体 commitId,如果再对文件进行二次修改就会自动产生一个无名分支,此时只会允许你commit到本地,不会再允许你push到远程。

detached HEAD 游离态的解决:
方案原理:先创建新的临时分支保存修改操作,再将新分支合并到master
方案只需4步:
git branch temp_branch
git checkout master
git merge temp_branch
git branch -d temp_branch

 

【全文完】

十年技术沉淀,只做原创文章;

及时关注作者,成就大牛之路!

如果您对文章内容有不同意见或独到见解,欢迎大家在评论区留言讨论,作者也会第一时间进行互动回复。



Tags:git   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
GitHub顶流"Web OS"——运行于浏览器的桌面操作系统、用户超100万、原生jQuery和JS编写
Puter 是近日在 GitHub 上最受欢迎的一款开源项目,正式开源还没到一周 ——star 数就已接近 7k。作者表示这个项目已开发 3 年,并获得了超过 100 万用户。根据介绍,P...【详细内容】
2024-03-10  Search: git  点击:(25)  评论:(0)  加入收藏
解读那些令人困惑 Git 术语
我在 Mastodon 上进行了调查:你有觉得哪些 Git 术语很让人困惑吗?我计划写篇博客,来解读 Git 中一些奇怪的术语,如:“分离的 HEAD 状态”,“快速前移”,“索引/暂存区/已暂存”,“比...【详细内容】
2023-12-08  Search: git  点击:(123)  评论:(0)  加入收藏
十个杀手级Git命令
Git是被广泛使用的分布式版本控制系统,开发人员可以跟踪代码库的变化,与团队成员合作,并管理项目的修订。本文整理了10个Git技巧,希望对读者有所帮助。1 Git 别名创建Git别名既...【详细内容】
2023-12-07  Search: git  点击:(156)  评论:(0)  加入收藏
基于GitHub App 深度讲解Kotlin高级特性与框架设计
基于GitHub App 深度讲解Kotlin高级特性与框架设计GitHub App 是 GitHub 平台上的一种特殊类型的应用程序,它允许开发者通过 GitHub API 与 GitHub 上的仓库和组织进行交互...【详细内容】
2023-11-28  Search: git  点击:(199)  评论:(0)  加入收藏
六个开发者必知必会的Git命令
Git是一种开源的分布式版本控制系统,在软件开发领域已经成为不可或缺的工具。开发人员掌握Git命令对于高效协作和版本控制有着重要的作用。本文介绍6个关键的Git命令,帮助开发...【详细内容】
2023-11-23  Search: git  点击:(166)  评论:(0)  加入收藏
GitHub:程序员正积极使用 AI 编程、JavaScript 语言依然最流行
IT之家 11 月 20 日消息,GitHub 发布了 2023 年度 Octoverse 开源状态报告,其中主要强调了 AI 在开发过程中的作用,并围绕云和 Git 的开源活动展开。官方介绍称,今年的三大趋势...【详细内容】
2023-11-20  Search: git  点击:(171)  评论:(0)  加入收藏
Git新手如何上传项目代码到GitHub并完成后续的代码更新?
国内对于个人站长的发展空间限制越来越多,首先是百度主推自家产品,现在权重最高的似乎就是百家号了,其次是腾讯云、阿里云这些提供IDC大厂提供的云端服务产品也很少有针对个人...【详细内容】
2023-11-15  Search: git  点击:(243)  评论:(0)  加入收藏
如何在GitHub上存储源码并保持同步
GitHub是一个广泛使用的基于云的代码托管平台,它为开发者提供了一个便捷的方式来存储、管理和共享他们的源代码。通过GitHub,开发者可以轻松地与团队成员合作,跟踪代码更改,并保...【详细内容】
2023-11-15  Search: git  点击:(232)  评论:(0)  加入收藏
GitHub在大会上发布的十大AI更新!
作者 | Tasmia 策划 | 言征出品 | 51CTO技术栈(微信号:blog51cto)GitHub的母公司微软在生成人工智能业务方面取得了巨大增长,该公司首席执行官萨蒂亚·纳德拉告诉华尔街,该...【详细内容】
2023-11-13  Search: git  点击:(226)  评论:(0)  加入收藏
重塑 GitHub、颠覆程序开发:GitHub Universe 2023 发布重大更新
编译 | 核子可乐、TinaGitHub 的东家微软看到了生成式 AI 业务的大幅增长,其首席执行官萨蒂亚·纳德拉 (Satya Nadella) 告诉华尔街,GitHub Copilot 软件的付费客户在第...【详细内容】
2023-11-10  Search: git  点击:(221)  评论:(0)  加入收藏
▌简易百科推荐
Netflix 是如何管理 2.38 亿会员的
作者 | Surabhi Diwan译者 | 明知山策划 | TinaNetflix 高级软件工程师 Surabhi Diwan 在 2023 年旧金山 QCon 大会上发表了题为管理 Netflix 的 2.38 亿会员 的演讲。她在...【详细内容】
2024-04-08    InfoQ  Tags:Netflix   点击:(2)  评论:(0)  加入收藏
即将过时的 5 种软件开发技能!
作者 | Eran Yahav编译 | 言征出品 | 51CTO技术栈(微信号:blog51cto) 时至今日,AI编码工具已经进化到足够强大了吗?这未必好回答,但从2023 年 Stack Overflow 上的调查数据来看,44%...【详细内容】
2024-04-03    51CTO  Tags:软件开发   点击:(7)  评论:(0)  加入收藏
跳转链接代码怎么写?
在网页开发中,跳转链接是一项常见的功能。然而,对于非技术人员来说,编写跳转链接代码可能会显得有些困难。不用担心!我们可以借助外链平台来简化操作,即使没有编程经验,也能轻松实...【详细内容】
2024-03-27  蓝色天纪    Tags:跳转链接   点击:(13)  评论:(0)  加入收藏
中台亡了,问题到底出在哪里?
曾几何时,中台一度被当做“变革灵药”,嫁接在“前台作战单元”和“后台资源部门”之间,实现企业各业务线的“打通”和全域业务能力集成,提高开发和服务效率。但在中台如火如荼之...【详细内容】
2024-03-27  dbaplus社群    Tags:中台   点击:(9)  评论:(0)  加入收藏
员工写了个比删库更可怕的Bug!
想必大家都听说过删库跑路吧,我之前一直把它当一个段子来看。可万万没想到,就在昨天,我们公司的某位员工,竟然写了一个比删库更可怕的 Bug!给大家分享一下(不是公开处刑),希望朋友们...【详细内容】
2024-03-26  dbaplus社群    Tags:Bug   点击:(5)  评论:(0)  加入收藏
我们一起聊聊什么是正向代理和反向代理
从字面意思上看,代理就是代替处理的意思,一个对象有能力代替另一个对象处理某一件事。代理,这个词在我们的日常生活中也不陌生,比如在购物、旅游等场景中,我们经常会委托别人代替...【详细内容】
2024-03-26  萤火架构  微信公众号  Tags:正向代理   点击:(11)  评论:(0)  加入收藏
看一遍就理解:IO模型详解
前言大家好,我是程序员田螺。今天我们一起来学习IO模型。在本文开始前呢,先问问大家几个问题哈~什么是IO呢?什么是阻塞非阻塞IO?什么是同步异步IO?什么是IO多路复用?select/epoll...【详细内容】
2024-03-26  捡田螺的小男孩  微信公众号  Tags:IO模型   点击:(9)  评论:(0)  加入收藏
为什么都说 HashMap 是线程不安全的?
做Java开发的人,应该都用过 HashMap 这种集合。今天就和大家来聊聊,为什么 HashMap 是线程不安全的。1.HashMap 数据结构简单来说,HashMap 基于哈希表实现。它使用键的哈希码来...【详细内容】
2024-03-22  Java技术指北  微信公众号  Tags:HashMap   点击:(11)  评论:(0)  加入收藏
如何从头开始编写LoRA代码,这有一份教程
选自 lightning.ai作者:Sebastian Raschka机器之心编译编辑:陈萍作者表示:在各种有效的 LLM 微调方法中,LoRA 仍然是他的首选。LoRA(Low-Rank Adaptation)作为一种用于微调 LLM(大...【详细内容】
2024-03-21  机器之心Pro    Tags:LoRA   点击:(12)  评论:(0)  加入收藏
这样搭建日志中心,传统的ELK就扔了吧!
最近客户有个新需求,就是想查看网站的访问情况。由于网站没有做google的统计和百度的统计,所以访问情况,只能通过日志查看,通过脚本的形式给客户导出也不太实际,给客户写个简单的...【详细内容】
2024-03-20  dbaplus社群    Tags:日志   点击:(4)  评论:(0)  加入收藏
站内最新
站内热门
站内头条