请回答: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是什么? 的相关文章

  • Git difftool 未启动外部 DiffMerge 程序

    我一直遵循 戴夫的博客条目 http www davesquared net 2009 05 setting up git difftool on windows html 链接在此answer https stackoverflow co
  • 为所有子文件夹设置 git 配置值

    我知道可以设置每个存储库的配置来覆盖用户级配置 即 path to my repo gitconfig覆盖 gitconfig 是否可以设置 git 配置来覆盖给定文件夹的所有子文件夹的用户级设置 即 我有 topLevelFolder1
  • Git 在哪里存储标签?

    Git 在哪里存储标签 我执行 git tag v0 1 0 v0 10 0 v0 11 0 但目录 git refs tags是空的 Git 将这些标签存储在哪里 谢谢 它们也可以存储在 git packed refs
  • 如何让 Aptana Studio 记住 git ssh 密码

    我找不到任何有关如何获得 Aptana Studio 的内置 git 支持来记住执行推 拉操作的 ssh 密码的指南 信息 有人有什么想法吗 Aptana Studio 实际上是内置的 GIT 程序 它将在 Windows 上的 C Use
  • Git - 如何将整个目录恢复到特定提交(删除任何添加的文件)

    我想恢复 git 中的目录 恢复其中的所有文件 并删除自该提交以来添加的所有文件 进行结账似乎只能满足我的第一个要求 但不会删除任何文件 我想出了最简单的解决方案 git rm path to dir git checkout
  • git reflog 和 log 有什么区别?

    手册页说 log 显示提交日志 reflog 管理 reflog 信息 reflog 信息到底是什么 它有哪些日志没有的信息 日志看起来更详细 git log显示当前的 HEAD 及其祖先 也就是说 它打印提交 HEAD 指向的提交 然后打
  • 除非我在项目目录中,否则 Git 不会显示日志

    我正在尝试打电话git log当我在不同的目录中时 我经过的位置 git is git log Users Leica proj1 但它说 不是 git repo 如果我cd进入这个目录 就可以正常工作了 cd Users Leica Pr
  • 如何在不在存储库中的情况下执行 Git 命令?

    有没有一种方法可以在不位于存储库的情况下对存储库执行 Git 命令 例如这样的事情 git home repo log 请不要告诉我cd到它 我正在通过一个exec call Use C作为 git 的第一个参数 git C home re
  • git 推送到 github 失败并显示“错误:pack-objects 因信号 967 死亡”

    我触发了这个命令 git push origin master 我得到这个结果 Counting objects 15626 done Delta compression using up to 4 threads error pack o
  • 我应该把 .gitignore 放在哪里才能影响所有项目?

    我应该在哪里放置一个 gitignore文件以便我的所有项目都使用这些设置 我尝试了各种文件夹 只有将其放入项目文件夹中才能使其正常工作 但是设置 当然 仅应用于该项目 而不是我的其他项目 git 包含一个 全局 配置选项 可以告诉它在启动
  • GIT:提交时“致命:无法写入 new_index 文件”

    当我尝试将更改提交到本地存储库时 我收到以下消息 致命 无法写入 new index 文件 As this 线程说明 http luhman org blog 2010 04 05 git fatal unable write newind
  • 尝试克隆一个 git 存储库,但它卡在克隆到中

    我使用的是 Windows 10版本 10 0 19042 内部版本 19042 GIT Ver 2 32当尝试使用 git bash 执行以下命令时git clone depth 1 b carla https github com Ca
  • 有没有办法导入/导出容器绑定脚本

    我有一个插件 它使用 appscripts gs 以及 html js 和 css 文件 目前我们所做的是我们有一个参考 Google 文档 其中有一个脚本项目包含所有这些源代码 但是除了手动复制和粘贴之外 没有办法在 GIT 中保留源代码
  • Gitolite git 克隆错误

    我正在尝试在我的服务器 Macos 服务器 上设置 gitolite 我按照此处找到的安装文档中的说明进行操作 http sitaramc github com gitolite doc 1 INSTALL html http sitara
  • Git checkout 不会丢弃我的更改

    我在 Windows XP 上使用 git 1 7 1 和 cygwin 这个问题可以通过例子得到最好的说明 git status On branch master Changed but not updated use git add
  • Git 认为我每次进行小更改时都在重写我的一个文件

    我有一个中等大小的 Java 文件 每次我对一个文件 BuildTable java 进行更改时 Git 都会将其报告为巨大的更改 即使只是一两行 BuildTable java 大约有 200 行 本次提交中的更改仅更改了一行 git d
  • git 错误:无法处理 https

    当我尝试使用 git clone 时https xxx https xxx我收到以下错误我不处理协议 https 有人可以帮我吗 完整消息 dementrock dementrock A8Se git 克隆https git innosta
  • npm install 的问题(Angular)

    今天我尝试创建一个新项目 所以我使用这个命令 ng new NAME style less 并在我的cmder中弹出错误和警告 所以我卸载了 Roaming npm 和 npm cache 中的节点和文件 然后我安装了node并再次下载cm
  • 使用 git 子树时如何添加特定文件夹?

    我正在开发一个复杂的 Ionic 项目 我正在开发的许多组件和提供程序都是通用的 可以在我公司正在进行的其他项目中使用 这在软件开发中很常见 这是我提出的 Git 工作流程 该图显示了分支 my company library repo c
  • 如何在 Visual Studio 2013 中使用 Git 的外部 diff 工具?

    我找到了这个帖子 http architects dzone com articles how configure diff and merge这解释了如何让 Visual Studio 2013 在比较 Git 中的文件时使用内置 dif

随机推荐

  • hexo 绑定自己的域名

    前提 xff0c 你得有一个域名 xff0c 有些域名需要备案后才能用 在域名解析添加记录 如果你用你顶点域名 xff08 如 xff1a lookk cn xff0c 就添加一条主机记录为 64 的 xff0c 如果你用www子域名 xf
  • java 把List集合转换为json

    1 servlet List转json 需要jar包 xff0c 可以到我github下载 commons beanutils 1 7 0 jar commons collections 3 2 jar commons httpclient
  • Manjaro Gnome版设置默认文件管理器(inode/directory)为Nautilus

    自从安装Visual Studio Code以后不知道为什么默认的文件管理器会被改为这个玩意 xff0c 每次像打开应用程序目录这样的操作弹出的都是VS Code xff0c 而且仅仅显示上次使用VS Code时的会话 xff0c 并不会显
  • 在linux下安装redis集群的踩坑记录

    这里是引用 这里写自定义目录标题 环境软件及说明安装集群心得最新安装的redisredis conf 中bind 属性需要重新配置的情况Can I set the above configuration还是历史数据问题redis 密码相关
  • java ExecutorService的invokeAll方法有两种用法 +价格超时计算

    exec invokeAll tasks exec invokeAll tasks timeout unit 其中tasks是任务集合 xff0c timeout是超时时间 xff0c unit是时间单位 两者都会堵塞 xff0c 必须等待
  • CSDN日报20170616 ——《从裁缝到码农》

    程序人生 从裁缝到码农 作者 xff1a 修电脑的裁缝酱 我伸出颤抖的手去抓 xff0c 发现曾经遥不可及的梦想 xff0c 经过坚持和努力之后 xff0c 真的可以抓住 我把它抓在手心 xff0c 紧紧地 点击阅读全文 机器学习 一文了解
  • Android 之调节系统的亮度和音量

    主界面的布局非常简单 xff0c 就是三个按钮 xff0c home按钮 xff0c 返回主界面 xff0c volume按钮 xff0c 弹出音量进度条 xff0c brightness按钮 xff0c 弹出亮度进度条调节 主界面 xff
  • 用R语言对网络数据进行统计分析(五)

    R语言社交网络快速入门 一 7天入门社交网络 R语言社交网络快速入门 二 7天入门社交网络 R语言社交网络快速入门 三 7天入门社交网络 R语言社交网络快速入门 四 7天入门社交网络 R语言社交网络快速入门 五 7天入门社交网络 网络图特征
  • SSH远程登录并执行命令测试

    SSH 是 Linux 下进行远程连接的基本工具 xff0c 但是如果仅仅用它来登录那可是太浪费啦 xff01 SSH 命令可是完成远程操作的神器啊 xff0c 借助它我们可以把很多的远程操作自动化掉 xff01 下面就对 SSH 的远程操
  • CentOs7.5yum安装JDK1.8详细过程

    先查看有哪些可安装的 yum list java root 64 VM 16 35 centos yum list java Loaded plugins fastestmirror langpacks Loading mirror spe
  • 你确定不了解下 Java 中反射黑魔法吗?

    前言 反射在Java 中算是黑魔法的存在了 用一句话来形容 反其道而行之 很多限制在反射面前 xff0c 就是形同虚设 例如我们设置了一个类的成员变量是 private 目的就是为了不让外部可以随意修改访问 但是呢 xff0c 使用反射就可
  • flutter- Android SDK file not found

    问题表现 执行flutter doctor 的时候 xff0c 报错Android SDK file not found xff0c 很明确的说没有配置 30 0 3 问题解决 首先去报错的SDK路径中排查是否有这个版本 发现有 xff0c
  • Flutter-安装APK失败INSTALL_PARSE_FAILED_MANIFEST_MALFORMED

    问题表现 今天一如既往的堆砌代码长城 xff0c 但是运行 flutter 项目的时候 xff0c 突然出现 APK 安装失败 xff1a 问题解决 遇到问题不要慌 xff0c 先仔细看看报错信息 xff0c 原因说的明明白白 xff0c
  • Java-Reflection反射-获取包括父类在内的所有字段

    前言 今天Android移动端要加个新功能 所以回归Android程序员的身份 开发的过程中 发现了之前的代码写的有很多问题 真的应该把时间抽出来重构一下了 其中有反射的一个坑 工具类某方法反射获取传入Model的属性值 但是当我把公共属性
  • Git-命令行-删除本地和远程分支

    命令行方式 Git Bash 切换到要操作的项目文件夹 命令行 cd lt ProjectPath gt 查看项目的分支们 包括本地和远程 命令行 git branch a 删除本地分支 命令行 git branch d lt Branch
  • 【获奖公布】征文 | 你会为 AI 转型么?

    AI xff08 Artificial Intelligence xff09 xff0c 即人工智能 人工智能领域的研究包括机器人 语音识别 图像识别 自然语言处理和专家系统等 人工智能从诞生以来 xff0c 理论和技术日益成熟 xff0c
  • 解除控制伽卡他卡控制

    测试环境 Win10系统伽卡他卡软件未被完全控制情况下 首先打开CMD xff08 以管理员身份 xff09 然后输入这串代码 taskkill f im student exe t 最后即可成功 xff01 xff08 操作仅供参考 xf
  • Git-命令行-拯救“Your local changes to the following files would be overwritten by checkout”

    事故现场 有些时候 xff0c 当我们使用 git checkout lt branchname gt 命令切换分支的时候 xff0c 有时会切换失败 xff0c 然后出现以下的提示信息 xff1a 提示信息说的很清楚 xff0c 当前分支
  • Git- [!remote rejected]:refusing to delete the current branch

    前言 xff1a 这算是 xff0c 在上篇博客 Git error dst refspec branch matches more than one 产生过程中的额外发现 为了测试一些 git 命令的实现 xff0c 我在 github
  • 请回答:Git是什么?

    Git 是什么 xff1f 不卖关子 xff0c 直接说重点 xff0c 以下是 Git 官网上的描述 xff1a Git is a free and open source distributed version control syst