Git从入门到精通

article/2025/11/4 3:54:40
  • 集中式与分布式
  • 中心服务器
  • 工作流
  • 分支实现
  • 冲突
  • Fast forward
  • 分支管理策略
  • 储藏(Stashing)
  • SSH 传输设置
  • .gitignore 文件
  • Git 命令一览
  • 参考资料
# 集中式与分布式

Git 属于分布式版本控制系统,而 SVN 属于集中式。

集中式版本控制只有中心服务器拥有一份代码,而分布式版本控制每个人的电脑上就有一份完整的代码。

集中式版本控制有安全性问题,当中心服务器挂了所有人都没办法工作了。

集中式版本控制需要连网才能工作,如果网速过慢,那么提交一个文件的会慢的无法让人忍受。而分布式版本控制不需要连网就能工作。

分布式版本控制新建分支、合并分支操作速度非常快,而集中式版本控制新建一个分支相当于复制一份完整代码。

# 中心服务器

中心服务器用来交换每个用户的修改,没有中心服务器也能工作,但是中心服务器能够 24 小时保持开机状态,这样就能更方便的交换修改。

Github 就是一个中心服务器。

工作流


新建一个仓库之后,当前目录就成为了工作区,工作区下有一个隐藏目录 .git,它属于 Git 的版本库。

Git 版本库有一个称为 stage 的暂存区,还有自动创建的 master 分支以及指向分支的 HEAD 指针。


  • git add files 把文件的修改添加到暂存区
  • git commit 把暂存区的修改提交到当前分支,提交之后暂存区就被清空了
  • git reset – files 使用当前分支上的修改覆盖暂缓区,用来撤销最后一次 git add files
  • git checkout – files 使用暂存区的修改覆盖工作目录,用来撤销本地修改

可以跳过暂存区域直接从分支中取出修改,或者直接提交修改到分支中。

  • git commit -a 直接把所有文件的修改添加到暂缓区然后执行提交
  • git checkout HEAD – files 取出最后一次修改,可以用来进行回滚操作

分支实现

使用指针将每个提交连接成一条时间线,HEAD 指针指向当前分支指针。


新建分支是新建一个指针指向时间线的最后一个节点,并让 HEAD 指针指向新分支表示新分支成为当前分支。


每次提交只会让当前分支指针向前移动,而其它分支指针不会移动。


合并分支也只需要改变指针即可。


冲突

当两个分支都对同一个文件的同一行进行了修改,在分支合并时就会产生冲突。


Git 会使用 <<<<<<< ,======= ,>>>>>>> 标记出不同分支的内容,只需要把不同分支中冲突部分修改成一样就能解决冲突。

<<<<<<< HEAD
Creating a new branch is quick & simple.
=======
Creating a new branch is quick AND simple.
>>>>>>> feature1

Fast forward

“快进式合并”(fast-farward merge),会直接将 master 分支指向合并的分支,这种模式下进行分支合并会丢失分支信息,也就不能在分支历史上看出分支信息。

可以在合并时加上 --no-ff 参数来禁用 Fast forward 模式,并且加上 -m 参数让合并时产生一个新的 commit。

$ git merge --no-ff -m "merge with no-ff" dev

分支管理策略

master 分支应该是非常稳定的,只用来发布新版本;

日常开发在开发分支 dev 上进行。


储藏(Stashing)

在一个分支上操作之后,如果还没有将修改提交到分支上,此时进行切换分支,那么另一个分支上也能看到新的修改。这是因为所有分支都共用一个工作区的缘故。

可以使用 git stash 将当前分支的修改储藏起来,此时当前工作区的所有修改都会被存到栈上,也就是说当前工作区是干净的,没有任何未提交的修改。此时就可以安全的切换到其它分支上了。

$ git stash
Saved working directory and index state \ "WIP on master: 049d078 added the index file"
HEAD is now at 049d078 added the index file (To restore them type "git stash apply")

该功能可以用于 bug 分支的实现。如果当前正在 dev 分支上进行开发,但是此时 master 上有个 bug 需要修复,但是 dev 分支上的开发还未完成,不想立即提交。在新建 bug 分支并切换到 bug 分支之前就需要使用 git stash 将 dev 分支的未提交修改储藏起来。

SSH 传输设置

Git 仓库和 Github 中心仓库之间的传输是通过 SSH 加密。

如果工作区下没有 .ssh 目录,或者该目录下没有 id_rsa 和 id_rsa.pub 这两个文件,可以通过以下命令来创建 SSH Key:

$ ssh-keygen -t rsa -C "youremail@example.com"

然后把公钥 id_rsa.pub 的内容复制到 Github “Account settings” 的 SSH Keys 中。

.gitignore 文件

忽略以下文件:

  • 操作系统自动生成的文件,比如缩略图;
  • 编译生成的中间文件,比如 Java 编译产生的 .class 文件;
  • 自己的敏感信息,比如存放口令的配置文件。

不需要全部自己编写,可以到 https://github.com/github/gitignore 中进行查询。

Git 命令一览


比较详细的地址:http://www.cheat-sheets.org/saved-copy/git-cheat-sheet.pdf

参考资料

  • Git - 简明指南
  • 图解 Git
  • 廖雪峰 : Git 教程

http://chatgpt.dhexx.cn/article/p4Ce53A6.shtml

相关文章

Git快速入门(图文教程)

前言&#xff1a; Git是目前最流行的版本控制工具之一&#xff0c;它可以帮助我们更好地管理代码&#xff0c;协作开发&#xff0c;以及保证代码的安全性。在学习Git之前&#xff0c;我们需要先了解几个概念&#xff1a; workspace&#xff1a;工作区&#xff0c;即我们正在进…

史上最简单的Git入门教程

1. 版本控制系统简介 1.1 何为版本控制 版本控制最主要的功能就是追踪文件的变更。它将什么时候、什么人更改了文件的什么内容等信息忠实地了已录下来。每一次文件的改变&#xff0c;文件的版本号都将增加。除了记录版本变更外&#xff0c;版本控制的另一个重要功能是并行开发…

Git入门

目录 一、准备工作 1.安装Git 二、git简介 1.Git是什么&#xff1f; Git是一个开源的【分布式】【版本控制系统】&#xff0c;用于敏捷高效地处理任何或小或大的项目 2.Git与SVN区别&#xff08;重点1/2/3/7点&#xff09; 3.实践操作&#xff1a;Gitee网站相关操作 3.1 …

程序员必备技能篇:Git入门到精通

前言❤️ 所有美好&#xff0c;都不负归期&#xff0c;选一种姿态让自己活得无可替代&#xff0c;没有所谓的运气只有绝对的努力 ❤️ 程序员必备技能篇&#xff1a;Git入门到精通 一、Git 起步篇&#xff08;1&#xff09;关于版本控制1.1 什么是版本控制1.2 版本控制软件1.2.…

Git入门到精通

Git入门到精通 一. 什么是Git1.1 Git简介1.2 Git的优点 二. Git和Svn的区别三. Git下载与安装3.1 下载Git 四. Git结构五. Git和代码托管中心5.1 代码托管中心5.2 本地库与远程库5.3 团队内部协作流程5.4 跨团队协作 六. Git命令行6.1 创建本地库6.2 设置签名6.2.1 签名概述6.2…

git入门使用详解

前言 一直使用svn版本管理&#xff0c;现在大多数公司都在用git作为版本管理工具。因此有必要简单了解一下git的常规使用&#xff0c;在以后用到git时&#xff0c;不至于盲目抓瞎&#xff0c;一脸懵逼。 一、对于分布式版本管理的理解 之前用的svn是集中式版本管理。代码中央…

git入门学习(详细版)

初始操作 git init 一个本地仓库设置完成 如果把文件夹删了 再git init的话 相当于另一个本地仓库了 设置自己的姓名和邮箱&#xff1a; 全局设定(设置完后本机全部生效)不局限于单个git文件夹 标识我的本机: git config --global user.name "wkx" 本机电脑 …

git入门教程

git入门教程 一、工作流程二、获取本地仓库三、Git常用指令1、查看文件状态2、查看提交日志3、版本回退4、添加文件至忽略列表 三、分支1、查看本地分支2、创建分支3、切换分支4、合并分支5、删除分支6、解决冲突 四、Git远程仓库1、常用的托管服务[远程仓库]2、注册码云3、创建…

Git入门(建议收藏)

目录 一.git简介 二.git的安装及其常用指令 三.分支及远程仓库基础操作 一.git简介 中心服务器&#xff0c;仅仅是为了方便交换大家的修改&#xff0c;但是这个服务器的地位和我们每个人的 PC 是一样的。我们可以 把它当做一个开发者的pc 就可以就是为了大家代码容易交流不关机…

史上最简单Git入门教程

一&#xff1a;Git是什么&#xff1f; Git是目前世界上最先进的分布式版本控制系统。 工作原理 / 流程&#xff1a; Workspace&#xff1a;工作区 Index / Stage&#xff1a;暂存区 Repository&#xff1a;仓库区&#xff08;或本地仓库&#xff09; Remote&#xff1a;远程仓…

手机上万里挑一的CAD看图软件,好用到颠覆你的世界观!

时代在进步&#xff0c;久而久之很多人开始对自己的生活要求和办公方式都在逐渐改变&#xff0c;移动端的办公方式越来越受欢迎&#xff0c;然而科技软件的开发也推动了移动办公的趋势&#xff0c;让我们不再局限于PC端的办公方式&#xff0c;其中对于CAD当然也是不例外的&…

cad快看_苹果用户福音——CAD快速看图mac版来啦

我们终于赶在2019年最后一天发布了软件的mac版本&#xff0c;以后使用苹果笔记本的用户也可以操作CAD快速看图啦~ 功能介绍 目前较小、极快的一款CAD看图软件&#xff0c;兼容AutoCAD各个版本DWG图纸直接查看&#xff0c;支持天正建筑、天正给排水、天正暖通、天正电气图纸。 产…

CAD手机看图软件使用技巧:CAD快捷命令功能

大家都知道在浩辰CAD软件中为了方便绘图&#xff0c;设置了很多CAD快捷键和CAD命令&#xff0c;那么在CAD手机看图软件浩辰CAD看图王手机版中有没有CAD快捷键/CAD命令呢&#xff1f;答案是肯定的&#xff01;那怎么使用浩辰CAD看图王中的CAD快捷命令呢&#xff1f;接下来给大家…

CAD看图软件的快速搜索功能怎么用?

在CAD制图工作中&#xff0c;可能会需要查看大量的CAD图纸&#xff0c;但是有时候电脑里的CAD图纸太多而且存储位置不好找&#xff0c;若是查找需要的CAD图纸查看可能会很麻烦。这时候就要使用迅 J CAD看图软件来快 速搜索CAD图纸打开查看了。可是CAD看图软件的快 速搜索功能怎…

不用花钱,免费查看CAD图纸的好用看图软件

我们在CAD制图工作中&#xff0c;有时候需要查阅大量的CAD图纸。现在市面上有的各种各样的CAD看图软件&#xff0c;都需要花钱&#xff0c;而且还安装麻烦&#xff0c;占用端脑内存。小编今天给大家介绍一下&#xff0c;不用花钱&#xff0c;免费查看CAD图纸的好用看图软件。 1…

CAD看图有什么技巧?怎么实现CAD快速看图?

在平时的绘图工作中&#xff0c;我们经常会在图纸绘制完成后将其保存为疲沓易于查看的图纸格式来进行保存&#xff0c;例如将CAD图纸转换为PDF格式&#xff0c;CAD转换JPG格式&#xff0c;CAD转SVG格式等等&#xff0c;那么如果我们部队图纸格式进行转换的话&#xff0c;要怎么…

cad查看_CAD快速看图 for mac(CAD图纸查看工具) v4.3.7中文版

CAD快速看图是由广联达软件股份有限公司自主研发的快速查看CAD图纸的工具&#xff0c;有mac、Android版、iOS版和PC版。软件可以对CAD图纸进行查看、标记、测距、照相和录音等功能。通过拷贝、邮件发送等传输方式将图纸发送到设备&#xff0c;即可在工地现场离线使用。 CAD快速…

cad看图软件看图软件哪个好?

我们在CAD软件制图方面是非常的优秀的&#xff0c;想要将CAD批量的文件进行查看&#xff0c;偶尔需要编辑和转换操作的时候&#xff0c;cad就显得有些麻烦了。通常我们接收到客户或领导的CAD文件是PDF格式&#xff0c;对不同格式之间的批量查看、编辑、转换的操作&#xff0c;其…

CAD看图怎么看?分享一个途径

我们在日常工作中有时会接触到CAD文件&#xff0c;这种文件不能直接打开&#xff0c;有没有什么好用的工具可以直接打开CAD查看其中图形呢&#xff1f;下面就介绍一款可以快速查看CAD文件的工具&#xff0c;一起来看看吧。 CAD编辑软件不仅支持查看CAD文件&#xff0c;还可以对…

cad快看_浩辰CAD看图王教你免费打开超大CAD图纸!

在日常CAD绘图过程中&#xff0c;经常会需要打开超大CAD图纸文件&#xff08;超大是多大&#xff1f;日常情况下超过20MB应该就算是比较大的图纸了&#xff09;&#xff0c;那CAD看图软件中可以打开这种超大CAD图纸吗&#xff1f;当然是可以的&#xff0c;下面就一起来看看浩辰…