请回答:Git是什么?

2023-05-16

Git 是什么?

不卖关子,直接说重点,以下是 Git 官网上的描述:

Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
Git is easy to learn and has a tiny footprint with lightning fast performance. It outclasses SCM tools like Subversion, CVS, Perforce, and ClearCase with features like cheap local branching, convenient staging areas, and multiple workflows.

Git 是一个免费并且开源的分布式版本控制系统,旨在快速高效地处理从小到大所有项目的版本管理。

Git 非常容易学习,低植入,高性能。因为拥有轻量的本地分支,易用的暂存区,和多工作流的特点,它超越了类似Subversion, CVS,Perforce和ClearCase的其他的 SCM 工具。

简洁来说,Git是一个分布式版本控制系统。

为什么要学习 Git?

没有无缘无故的学习,因为要用到,所以要了解要学习。

Git 是目前最流行的版本管理工具,而且没有之一,就算你的公司使用的不是 Git ,如果你使用 Github 的话,必定要用到Git。如果这里你说你没使用 GitHub,那么就快去用起来,哥们你错过了很多优秀的开源项目啊不能再这样下去了。目前最火的开源社区 Github ,就是基于 Git 版本控制系统,所以掌握 Git 技能很重要。

因为 Git 很火,现在很多 IDE 都集成了 Git,并且提供一些相关的图形化操作。也有很多很优秀,专门用来简化 Git 操作的 Git GUI 工具,例如 SourceTree,Tortoise 等。

但是我想说的是,命令行才是Git的王者操作!

原因是,Git Gui的工具底层也是对常用的 Git 命令进行封装实现的,所以,直接Git命令,才是最灵活的操作,学会之后,你,几乎,无所不能。(此处请想象玛丽苏的说话语气)。另外也不建议从 GUI 开始,不是很利于理解 Git 的内部原理。说实话,我刚接触 Git 的时候,就是从 GUI 入手的,Android Studio 集成的 Git 使用图形页面,傻瓜式使用挺方便,但是我用完什么都不懂,从今年开始命令行之后,才敢在简历-专业技能上加上 Git 一项。

命令行很好学,而且使用起来非常非常地帅。

Git 安装以及环境配置

第一步 首先随便一个 git 命令看你的电脑上是否安装了 Git

Mac :Terminal 或者 iTerm2
Windows :(Windows+R) cmd

例如:
git

Mac 系统默认下载了git,Windows系统不会,所以 Windows 用户要自己去 Git 官网下载

第二步 配置环境

Windows 用户:

1.安装官网下载来的 git.exe,一路 next 即可。
2.右键“此电脑”->“属性”->“高级系统设置”->“环境变量”->在下方的“用户变量”中找到“path”->选中“path”并选择“编辑”,将刚才安装git目录中的 bin 文件完整路径添加进去->保存
3.重复第一步,验证是否配置成功

Mac 用户:

这个时候你可以去接杯水,因为系统为了做好了一切。

学习 Git 前的准备

首先,你要有一个 GitHub 的账号~,真的,没开玩笑。GitHub注册点这里

很多人(包括我)刚开始的时候,脑海中都会用这个疑惑,Git 和 GitHub 是什么关系以及这俩货有什么区别?
关于Git,上面我们说过了,是一个版本控制系统,那接下来很有必要来介绍一下 Github 了。

准确的来说,GitHub 是一家公司,位于旧金山,于2008年4月创办,然后这家公司在2008年4月10日,正式成立了GitHub,地址:How people build software · GitHub ,主要提供基于git的版本托管服务。一经上线,它的发展速度惊为天人,截止目前,GitHub 已经发展成全球最大的开(同)源(性)社区。

GitHub 上的代码仓库,只支持 Git 做版本管理,只有通过 Git 才能把代码上传到 GitHub 。

以上就是 Git 和 GitHub 的关系。

而且接下来的博客都是以 GitHub 作为我们的代码仓库。

专有名词解释

  • SCM (Software configuration management)软件配置管理

软件配置管理(SCM)是指通过执行版本控制、变更控制的规程,以及使用合适的配置管理软件,来保证所有配置项的完整性和可跟踪性。配置管理是对工作成果的一种有效保护。

  • IDE (Integrated Development Environment)集成开发环境

IDE是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所有具备这一特性的软件或者软件套(组)都可以叫集成开发环境。

  • GUI (Graphical User Interface)图形用户界面

图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。

欢迎订阅我的Git系列文章

  • 01. 请回答:Git是什么?
  • 02. Git常用命令一日游活动
  • 03. Git三大特色之Branch(分支)
  • 04. Git三大特色之Stage(暂存区)
  • 05. Git三大特色之WorkFlow(工作流)
  • 06. Git-你好, HEAD 同学
  • 07. Git-用 cherry-pick 挑好看的小樱桃
  • 08. Git-rebase 黑魔法之打造完美的线性历史
  • 09. Git-rebase 黑魔法之打磨 commit 颗粒度
  • 10. Git-少年,你想学回滚吗?想撤销文件修改吗?
  • 11. Git-移动记录仪 & 贴心小棉袄 reflog
  • 12. Git-丢失的 commit 是真的消失了吗?
  • 13. Git-叹为观止的 log 命令 & 其参数
  • 14. Git-送娃子们一本关于如何自学 Git 的秘籍

欢迎关注个人微信公众号「浅浅同学的开发笔记」,最新的博客,好玩的事情,都会在上面分享,期待与你共同成长。

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

请回答:Git是什么? 的相关文章

  • 无法通过 HTTPS 克隆私有 Github 存储库

    我在通过 HTTPS 克隆私有 GitHub 存储库时遇到问题 如果我尝试使用以下方式克隆我的存储库 git clone https github com username repository 我收到错误 fatal remote err
  • 在家庭和办公室进行开发,GIT 会比使用 xcopy 的 SVN 更容易吗?

    如果出于安全原因 源代码只能存储在我的家庭计算机和办公室计算机上 如果传输代码的唯一方法是 USB 密钥 那么哪种源代码控制是最好的 SVN还是GIT 注意 两台计算机之间没有网络连接 我推荐git 无论哪种方式 您都需要 USB 密钥上的
  • GIT Rebase 对多个 0.5GB 二进制文件致命

    这个问题本质上是重新开rebase 期间 git 崩溃 https stackoverflow com q 7692944 1286639从来没有答案 我正在尝试从我的 secc 分支进行变基 git rebase main First r
  • 将 WordPress 保持在版本控制中 - 主题的单独存储库

    我的 WordPress 项目位于 Git 下 并将 WordPress 作为子模块 我想将主题开发保留在单独的子模块中 但在当前设置内 将主题设置为子模块时遇到一些困难 这是我的文件系统 git master repo index php
  • git-svn 期间“RA 层请求失败:REPORT 请求失败”

    我一直在尝试使用以下命令 Git 克隆 Google Code SVN 存储库 git svn clone stdlayout https wtorrent project googlecode com svn wtorrent git 它
  • 使用 GitHub 时防止将大文本文件添加到提交

    我们想要防止 非常大的文本文件 每个文件 gt 50MB 被提交到git代替git lfs 因为它们夸大了 git 历史 问题是 其中 99 大小差异的原因 这些是 YAML 文件 它们支持通过 Base64 编码进行二进制序列化 我们无法
  • 如何删除“致命:松散物体”?

    我的一个克隆存储库是从 git fsck 获取的 致命 松散对象 40bda4e3b79c3d7bf598df31d9e68470f97a3f79 存储在 git objects 40 bda4e3b79c3d7bf598df31d9e68
  • 不同GIT版本的GIT合并结果不同

    在不同的 GIT 版本上运行 merge 命令我们得到不同的结果 命令是 git merge no ff origin master codeline Results 版本2 1 4 gt 合并成功 版本1 7 1 gt 同一提交上的同一合
  • 从TFS迁移到GIT,共享项目到nuget

    我所在的软件团队由 4 5 名开发人员组成 他们从事一个 TFS 项目 我们正在考虑将整个代码库移至 GIT 该代码库由约 50 个 Visual Studio 2013 解决方案组成 分为约 300 个项目 引用项目中另一个程序集的首选过
  • 让“git pull”在拉取不同分支时要求确认

    当同时处理许多项目和分支时 我偶尔会犯一些愚蠢的错误 比如拉入错误的分支 例如在分支上master I did git pull origin dangerous code并且有一段时间没有注意到这一点 这个小错误造成了很大的混乱 当我尝试
  • git-http-backend 与 AuthzUnixGroup 无法正常工作

    我正在尝试在 CentOS 6 机器上的 Apache 2 2 上设置一个 git 存储库 并安装了 git 我尝试过许多不同的方向 但我却不知所措 我目前的情况包括能够clone正常 但完全无法推动 似乎我无法使身份验证位正常工作 因为我
  • 如何将推送的分支复制到另一个目录?

    我有一个分支叫master 生产 另一个称为development 当我从 master 推送提交时 post receive 挂钩执行 git work tree var www mywebsite com git dir var rep
  • 提交 ID 从哪里来?

    我只是对此很好奇 提交 ID 不能是随机的 因为它们需要是唯一的 不过 它们似乎是随机的 这让我想知道 为什么它们不只是连续的数字 我的意思是 它们只需要在存储库中是唯一的 对吧 或者我在这里错了 Thanks Git 提交 ID 是 SH
  • git-daemon 的日志保存在哪里? (Windows 上的 Git 使用 Cygwin)

    我正在将 git daemon 作为 Windows 服务运行 使用创建进程 服务中使用的命令是 git daemon reuseaddr base path data test work export all verbose enable
  • 如何归档旧的 git 标签?

    我的 git 存储库中有一些不再重要的旧标签 我想存档标签 以便在运行 git tag 时默认情况下它们不会显示 我不想删除它们 因为我想保留历史记录 我怎样才能做到这一点 可以将标签保留在存储库中并避免将它们列为标签 它还可以避免默认克隆
  • 为什么某些 Git 分支名称中包含斜杠?

    我正在阅读本教程https www atlassian com git tutorials syncing git fetch https www atlassian com git tutorials syncing git fetch
  • Git:由于看似随机的合并,更改不断丢失

    我有一种感觉 这将是一个显而易见的答案 但我似乎无法解决 似乎发生的情况是 我向服务器提交 推送了一些更改 并且我的副本上的一切都显示正常 然后 另一位开发人员从同一分支的服务器中拉取 据我所知 据称看到了我的更改 进行一些修改 将它们提交
  • 如何从“git log”中查看 Git 中的特定版本?

    My git log显示为 enter code here git trial git log commit 4c5bc66ae50780cf8dcaf032da98422aea6e2cf7 Author king lt email pro
  • Git:检查文件是否存在于某个版本

    在我的应用程序中 我使用 git 对一些外部文件进行版本管理 我正在使用类似的命令git show HEAD 1 some file获取文件的某个版本 基于 git 标签 提交哈希或与 HEAD 的关系 当文件不存在时 会输出 致命 消息
  • 从 git 签出后 nuget dll 丢失

    I have a C solution containing different projects On those projects I have some normal nuget packages like Newtonsoft Js

随机推荐