Git简介与基本使用

2023-11-06

一、Git简介

1.1产生历史

  git是目前世界上最先进的分布式版本控制系统。   Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了。Linus虽然创建了Linux,但Linux的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为Linux编写代码,那Linux的代码是如何管理的呢?事实是,在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码!你也许会想,为什么Linus不把Linux代码放到版本控制系统里呢?不是有CVS、SVN这些免费的版本控制系统吗?因为Linus坚定地反对CVS和SVN,这些集中式的版本控制系统不但速度慢,而且必须联网才能使用。有一些商用的版本控制系统,虽然比CVS、SVN好用,但那是付费的,和Linux的开源精神不符。不过,到了2002年,Linux系统已经发展了十年了,代码库之大让Linus很难继续通过手工方式管理了,社区的弟兄们也对这种方式表达了强烈不满,于是Linus选择了一个商业的版本控制系统BitKeeper,BitKeeper的东家BitMover公司出于人道主义精神,授权Linux社区免费使用这个版本控制系统。安定团结的大好局面在2005年就被打破了,原因是Linux社区牛人聚集,不免沾染了一些梁山好汉的江湖习气。开发Samba的Andrew试图破解BitKeeper的协议(这么干的其实也不只他一个),被BitMover公司发现了(监控工作做得不错!),于是BitMover公司怒了,要收回Linux社区的免费使用权。Linus可以向BitMover公司道个歉,保证以后严格管教弟兄们,嗯,这是不可能的。实际情况是这样的:Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!一个月之内,Linux系统的源码已经由Git管理了!牛是怎么定义的呢?大家可以体会一下。Git迅速成为最流行的分布式版本控制系统,尤其是2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等等。历史就是这么偶然,如果不是当年BitMover公司威胁Linux社区,可能现在我们就没有免费而超级好用的Git了。

#### 1.2Git的两大特点

  • 版本控制:可以解决多人同时开发的代码问题,也可以解决找回历史代码的问题。
  • 分布式:Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。首先找一台电脑充当服务器的角色,每天24小时开机,其他每个人都从这个“服务器”仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交。可以自己搭建这台服务器,也可以使用GitHub网站。

二、Git的安装与配置

  1. 安装命令如下:
sudo apt-get install git

在这里插入图片描述

  1. 安装成功后,运行如下命令:
git

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

Git简介与基本使用 的相关文章

  • Git 存储库错误并显示消息,它不是存储库...但它是

    我有一个 git repo 去年我一直在同一个盒子上使用 今天我跑步git status并得到错误消息 fatal Not a git repository or any parent up to mount parent home Sto
  • 中止 `git stash apply` [重复]

    这个问题在这里已经有答案了 我很遗憾应用了存储 错误的分支 我如何撤消此操作并将我的存储返回到我的存储列表 以便稍后将其应用到正确的分支 如果你还没有承诺 你应该能够git stash再次 可能与git reset HEAD first A
  • Git Add - 致命:添加文件失败

    我的 git cmd exe 窗口如下所示 git add NextFolder error unable to create temporary file No such file or directory error NextFolde
  • 在 Xcode 9 上切换分支

    我无法找到使用 Xcode 9 切换分支的菜单项 工作副本菜单似乎已经消失 有任何想法吗 Xcode 9 Xcode 8 Press 2 to open the new Source Control Navigator 右键单击master
  • Django 和 VirtualEnv 开发/部署最佳实践

    只是好奇人们如何结合 virtualenv 部署 Django 项目 更具体地说 如何使生产虚拟环境与开发计算机正确同步 我使用 git 进行 scm 但 git 存储库中没有 virtualenv 我应该这样做 还是最好使用 pip fr
  • 使 .git 目录 web 不可访问

    我有一个网站 我使用 github 闭源 来跟踪更改和更新网站 唯一的问题是 git 目录似乎可以通过网络访问 我怎样才能停止这个并且仍然能够使用 git 我应该使用 htaccess 吗 我应该更改 git 的权限吗 把这个放在一个 ht
  • “git merge --squash”的正确用例是什么?

    有些人喜欢git merge squash由于以下原因 压缩到单个提交使您有机会清理混乱的 WIP 提交 并为您要合并的更改提供良好的理由 https coderwall com p qkrmjq git merge squash http
  • 返回到 Github Desktop 中的上一个提交

    我正在尝试使用 GitHub Desktop 即 GUI 应用程序 而不是命令行 返回到先前的提交 在同一分支上 我认为这是一个核心功能 因为它是首先使用源代码控制的主要原因 我可以看到可以恢复提交 但这并不是我真正想要的 因为它创建了一个
  • 如何将更改提交到另一个预先存在的分支

    我刚刚对一个分支进行了更改 如何将更改提交到另一个分支 我正在尝试使用 git checkout the commmit to the changed branch b the other branch 但是 我认为这不是正确的做法 因为在
  • 从 Eclipse 的历史视图中删除 ORIG_HEAD 和 FETCH_HEAD

    我最近开始使用 Eclipse Kepler 和 EGit 插件 这些分支不是我习惯的 有没有办法永久阻止这些分支的创建 我尝试手动删除它们 但它不起作用 并且我不想在下次获取或变基时保留它们 据我从对您问题的评论中了解到 您只希望这些参考
  • 如何列出未推送的 Git 提交(本地但不在源上)

    如何查看我所做的 尚未推送到远程存储库的任何本地提交 偶尔 git status将打印出我的分支是X提交之前origin master 但不总是 这是我安装的 Git 的错误 还是我遗漏了什么 这给出了 origin master 和 HE
  • git update-index --no-assume-unchanged 不起作用

    我设置了assume unchanged咬了几个文件 现在我想取消它们 但这不起作用 gt git update index no assume unchanged Gemfile gt git ls files v grep Gemfil
  • 每个分支的 Git 磁盘使用情况

    你知道是否有办法列出每个分支的 git 存储库的空间使用情况 喜欢df or du would 分支的 空间使用情况 是指 尚未在存储库的其他分支之间共享的提交所使用的空间 这没有正确的答案 如果您查看仅包含在特定分支中的提交 您将获得 b
  • Git 与人工制品

    刚刚完成 NPM 和 Bower 的 Artifactory 设置 它非常容易使用 您只需更改存储库 URL 一切就正常了 查看有关如何让 Artifactory 与 github vcs 一起使用的文档 它看起来过于复杂 我想知道是否有人
  • 如何与其他用户共享 bitbucket 存储库?

    我正在使用 Bit 存储桶 并且我想与一位朋友分享我的存储库 我用的是免费的个人账户 似乎有一个选项可以在位桶中创建团队 但它说它将把我的帐户从个人帐户转换为团队帐户 我不要那个 我如何授予其他用户访问此存储库的权限 有一个共享链接选项 如
  • 警告:引用名称“xxx”不明确

    我想知道为什么我收到 refname is ambigeous 的警告 这是否意味着名称以该字符串开头的分支不超过两个 但这里没有 Thanks git checkout B03799 warning refname B03799 is a
  • 从预提交挂钩中排除某些文件类型

    我想要一个预提交 git 钩子来检查 如果可能的话 自动删除 尾随空格 In 让 git 在提交之前自动删除尾随空格 https stackoverflow com questions 591923 make git automatical
  • 为什么我的存储库的 github 页面中没有出现问题选项卡?

    我想在 github 存储库中创建问题来纠正存储库中的技术债务 我看不到问题选项卡 对于其他存储库 问题选项卡显示在拉取请求选项卡下方 如何为我的存储库启用问题选项卡 您必须先启用问题 您可以通过点击来做到这一点Settings并启用 问题
  • git checkout HEAD -- 和有什么区别?和 git reset --hard HEAD?

    我已经查看了这个 stackoverflow 链接 但我认为我所要求的之间的细微差别是使用HEAD在结账命令中 因为他们的建议似乎不起作用 git reset hard HEAD 和 git checkout 之间有区别吗 https st
  • 如何在Git中手动合并所有文件?

    我想合并所有文件manually有了 meld 或任何其他 diff 工具 我如何使用 Git 来做到这一点 当我跑步时git mergetool它说no files need merging 所以我想只有当我有冲突时我才能做到这一点 有更

随机推荐

  • 手写轨迹识别数字

    使用自定义模板实现了手写识别 目前实现了纯数字的识别 后续正在开发英文数字的识别 中文识别暂未有计划 使用方法 获取笔迹 笔迹字段为数组 每个对象有3个值 x 笔迹的x值 y 笔迹的y值 action 动作 包含3个动作 down落笔 up
  • Centos 7 VNC配置及黑屏原因 (图文教程)

    Centos 7 VNC配置或安装的教程很多 鱼龙混杂 这里写一篇经过实践证明的真理配置方法 以正视听 Centos 7 安装VNC非常简单 要比Ubuntu简单多了 因为Ubuntu默认Unity桌面不支持VNC 1 关闭防火墙 syst
  • 前端开发——微信小程序

    1 安装 微信开发者工具 使用的开发平台为 微信开发者工具 点击此处链接 依次点击 工具 gt 下载 gt 稳定版更新日志 找到适合的版本 进行下载安装 2 注册微信小程序 注册微信小程序 点击注册链接 注意注册的是 小程序 根据注册提示完
  • [VB.NET]曲线的绘制!!!

    曲线的绘制 第一 在实验时需要把实时采集到的数据绘制成曲线图 再者 在数据处理时 需要把数据库中的数据 就是刚才实时采集到的数据点 以曲线图的形式在picturebox上显示出来 并且还要打印 请高手进来指点指点吧
  • 注解的力量 -----Spring 2.5 JPA hibernate 使用方法的点滴整理(六)

    一 实体 Bean 每个持久化POJO类都是一个实体Bean 通过在类的定义中使用 Entity 注解来进行声明 声明实体Bean Entitypublic class Flight implements Serializable Long
  • 异步编程之Promise(2):探究原理

    异步编程系列教程 翻译 异步编程之Promise 1 初见魅力 异步编程之Promise 2 探究原理 异步编程之Promise 3 拓展进阶 异步编程之Generator 1 领略魅力 异步编程之Generator 2 剖析特性 异步编程
  • 搭建自己的Nuget Server服务器,并打包上传自己的程序包

    一 搭建自己的Nuget Server 1 VS先创建一个 空Web项目 Net版本建议采用4 6或以上 2 项目建好之后 引用 gt 右键 管理Nuget程序包 打开Nuget包管理器 安装 Nuget Server 包 3 Nuget
  • Js实现简单的计时器功能

    最近学习JavaScript的计时器功能 做了一个小案例 在此记录一下 需要的童鞋可以看一下 代码的缺点 是小时数部分计时样式没有做出来完整的显示 望海涵
  • python基于爬虫技术的海量电影数据分析源码,数据处理分析可视化,GUI界面展示

    基于爬虫技术的海量电影数据分析 介绍 一个基于爬虫技术的海量电影数据分析系统 系统架构 本系统主要分为四个部分 分别为后端爬虫抓取 数据处理分析可视化 GUI界面展示 启动运行 分别对应getData py pyec py GUI py m
  • 【2022天梯赛模拟赛】 题解(主python,261)

    2022天梯赛题解 主python 能261分 前几天不是刚模拟赛完吗 这次模拟赛pythonL1很多超时是我没想到的 快正赛了 赶紧把模拟赛题从头到尾过一遍 看一下没拿满分的问题出在哪里 折腾了一天终于能做的都做了理解了 为了加深记忆这边
  • Android NV21与I420数据旋转90°

    概述 现在图片数据存储方式大体上分为两种 RGB和YUV模型 RGB本篇不讲 YUV是根据一个亮度 Y分量 和两个色度 UV分量 来定义颜色空间 YUV采样可分为 YUV 4 4 4采样 每一个Y对应一组UV分量 一个YUV占8 8 8 2
  • .8布尔值、Null和Undefined

    一 布尔值 Boolean 只有两个值 返回值 二 Null Null类型的值只有一个 null 专门用来表示一个空的对象 返回值 三 Undefined Undefined类型的值只有一个 undefined 声明一个变量而不赋值则为该值
  • Django2 提示 "**" is not a registered namespace

    定义应用 student 的命名空间一般步骤 第一步 应用 student 的url py 文件添加如下代码 include 函数允许引用其他的 URLconf 每当 django 遇到 include 它会截取 URL 中匹配到的前面的部
  • 微信小程序发布代码步骤

    看图说话 1 在HBuilder X 点击发行 终端会显示发行成功 2 在微信开发者工具 会新打开一个页面 点击详情看下路径是不是 dist build 这才是压缩要发行 3 点击确定 根据自己需求改版本号等等信息 点击提交 4 浏览器打开
  • [电动智能汽车-2]:原理 - 纯电动汽车的基本安全与安全操作的基本流程

    目录 第1章 安全知识概述 1 1 碰撞保护 2 2 漏电检测 1 3 过流保护 1 4 高压互锁 第2章 安全保护措施 2 1 常见安全保护设备 2 2 高压部件 2 3 高压维修的流程 2 4 仪表盘故障监控 2 5 组合仪表指示灯 2
  • Vmware虚拟机一打开电脑就蓝屏的解决方法

    1 升级虚拟机版本 最好是最新版本 这个是本人以及身边人解决虚拟机蓝屏最多的办法 建议第一个尝试这个办法 2 关闭本电脑的Hyper V服务 3 启用和关闭windows功能 对话框 gt 虚拟机平台 选项打对勾 默认没勾选 gt 确定后重
  • WPF 自定义控件完成库容表盘显示效果

    先看一下显示效果 需要注意的地方有以下几点 表盘的刻度分部 长刻度和短刻度显示 在数值80W时 需要更改刻度盘的颜色渐变 在数值80W时 更改库容总数背景的显示 也是颜色渐变 刻度盘控件属性定义 刻度盘的定义 using Microsoft
  • Google Test源码浅析(二) -------- TEST宏

    一 TEST宏的定义 一个例子 TEST TestCaseName1 TestName1 cout lt lt hello1 lt lt endl
  • 使用pyfinance进行证券收益分析!金融界的一大帮手!

    pyfinance简介 在查找如何使用Python实现滚动回归时 发现一个很有用的量化金融包 pyfinance 顾名思义 pyfinance是为投资管理和证券收益分析而构建的Python分析包 主要是对面向定量金融的现有包进行补充 如py
  • Git简介与基本使用

    文章目录 一 Git简介 1 1产生历史 二 Git的安装与配置 三 创建一个版本库 四 版本创建与回退 4 1使用 4 2工作区和暂存区 4 2 1工作区 Working Directory 4 2 2版本库 Repository 4 3