Git与GitHub:解锁版本控制的魔法盒子

news2024/9/30 11:29:00


✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭~✨✨

🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。

我是Srlua,在这里我会分享我的知识和经验。🎥

希望在这里,我们能一起探索IT世界的奥妙,提升我们的技能。🔮

记得先点赞👍后阅读哦~ 👏👏

📘📚 所属专栏:Git

欢迎访问我的主页:Srlua 获取更多信息和资源。✨✨🌙🌙

目录

git与GitHub

Git

Git的由来

小故事~

GitHub

下载安装

安装 git for windows

安装 tortoise git

注意:

使用 Github 创建项目

GitHub打不开~

注册账号

创建项目

Git 操作的三板斧

放入代码

​三板斧第一招: git add

三板斧第二招: git commit

三板斧第三招: git push

小结


git与GitHub

Git

Git是一种分布式版本控制系统,由Linus Torvalds创造,主要用于帮助多人协作进行软件开发。它用于管理项目的历史记录,包括文件的更改历史和各种版本。

使用Git,开发者可以轻松地克隆现有的项目仓库,进行更改,并提交这些更改,从而与其他开发者共享。此外,Git还能有效地处理大型项目,并支持分支管理,这使得开发者可以并行开发多个功能或修复问题。 Git的主要特点包括:

  1. 分布式版本控制:每个Git仓库都有完整的代码历史记录,因此不需要连接到远程服务器就可以进行许多操作。

  2. 分支管理:可以轻松创建、合并和删除分支,这使得多人在同一个项目中协作变得简单。

  3. 暂存区(Staging Area):允许开发者选择性地暂存文件更改,然后再提交。

  4. 非线性历史:Git允许创建非线性历史记录,这为一些特定的开发场景提供了便利。

  5. 多种协议支持:可以通过HTTP、SSH、Git等多种协议进行网络传输。 Git已成为许多开源项目和许多企业中软件开发的重要组成部分。

简单来说就是:

git是一个版本控制工具. 主要解决三个问题

  1. 代码被喵星人吃掉了.
  2. 产品经理反复修改需求, 需要同时维护多个版本代码.
  3. 多人协同开发

博主的博文有相关林纳斯托瓦兹的介绍,Linux 系统的诞生开始于芬兰赫尔辛基大学的一位计算机系的学生,名字为 Linus Torvalds

Git的由来

Git的由来与Linux内核开发的历史紧密相关。

在Linux内核开发早期,开发者们使用的是一个名为BitKeeper的版本控制系统来管理代码。BitKeeper是由BitMover公司提供的商业软件,它允许开发者克隆整个代码库到本地,并在本地进行更改,然后将更改同步回中央服务器。

然而,2005年,BitMover公司改变了其许可政策,不再允许免费使用BitKeeper,这使得Linux内核开发者们面临一个选择:要么支付高昂的许可费用,要么寻找替代的版本控制系统。

为了继续免费地管理Linux内核的代码,Linux内核创始人Linus Torvalds于2005年7月发布了Git。

Git的设计受到了BitKeeper的影响,但它是一个开源的分布式版本控制系统,这意味着每个开发者都可以拥有完整的代码历史和版本控制功能,而不需要中央服务器。

Git的发布迅速得到了开源社区的广泛支持,并迅速成为最流行的版本控制系统之一,不仅用于Linux内核开发,还用于无数的其他项目和大型软件开发工作。Git的流行也促进了GitHub(一个基于Git的开源代码托管平台)的创建,进一步推动了开源社区的协作和代码共享。

小故事~

以下是来自ubergizmo发布的八卦:

        linus fucked nvidia是在2012年。当时linus在某大学开讲座,问答环节中,有人吐槽自在笔记本电脑上跑个带图形界面的linux好麻烦。linus表现出了极大的同情,他说nvidia想给安卓市场卖大量的芯片,但又不乐意给linux提供支持,非常难缠。原话“the single worst company”。最后linus在激动之下对着摄影机伸出中指fuck了nvidia。

简单来说,意思就是nvidia这么个毫无技术秘密可言的内核驱动,nvidia也不愿意开放编程接口,所以linus很不满。

这个事情今天已经不可能再发生了。

        第一,linus老了之后开始反思自己的过往,觉得自己当年口无遮拦怼天怼地,缺乏同理心,是不对的,也对社区无益。他甚至接受了相关的therapy,人变得比较温和。曾今的嘴臭之王再也干不出对着镜头fuck别人的事情了。

        第二,2012年Alex和Ilya他们还在手搓AlexNet,靠GPU搞AI还在爆发的前夜。nvidia自己可能都还没想到这里有这么大一块业务,自然也懒得给linux投入精力。而nvidia后来这些年靠AI赚飞了,nvidia对linux的支持也就越来越多。虽然大部分核心竞争力,诸如驱动,cuda之类的都还是闭源,但是整体来说还是乐意和开源社区合作。这一点上,linus本人也表示过赞同。

相关链接如下:

操作系统透视:从历史沿革到现代应用,剖析Linux与网站服务架构-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/Srlua/article/details/136018913?spm=1001.2014.3001.5501

GitHub

GitHub是一个基于web的服务平台,用于托管和开发Git仓库。

它提供了Git的分布式版本控制和源代码管理(SCM)功能,同时增加了一些自己的特性,如任务管理、订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等。 GitHub的特点包括:

  1. 社交编码:GitHub允许用户对项目进行关注、点赞、评论和发起议题,这使得软件开发变得更加社交化。

  2. 代码托管:用户可以在GitHub上创建public或private的代码仓库,用于存储和管理项目代码。

  3. 分支管理:用户可以创建和管理仓库的分支,方便多人协作和功能开发。

  4. Pull Requests:用户可以通过Pull Requests(PR)来贡献代码到其他项目,也可以在自己的项目中接受他人的代码贡献。

  5. 代码审查:GitHub的Pull Requests功能内置了代码审查功能,允许项目维护者或其他贡献者审查更改。

  6. 集成:GitHub与其他工具和服务集成,如Continuous Integration(CI)/Continuous Deployment(CD)服务、Issue跟踪工具、代码分析工具等。

  7. GitHub Actions:提供了一个持续集成和持续部署的平台,允许用户自动化构建、测试和部署他们的项目。

  8. Markdown渲染:GitHub支持Markdown语法,使得文档和注释的编写更加简洁和美观。 GitHub成立于2008年,迅速成为最流行的代码托管平台之一,特别是对于开源项目。用户可以通过GitHub进行代码分享、协作和项目管理,它的社交特性也使得软件开发过程中的交流和协作变得更加方便。

简单来说就是:

Github 是 "全球最大的同性社交网站". 通过 git 可以把代码上传到 Github 上给全球的用户分享

下载安装

安装 git for windows

这个是一个git的windows系统的命令行版本

Git - Downloads

安装 tortoise git

这个是git的图形界面.

Download – TortoiseGit – Windows Shell Interface to Git

注意:

  1. 先安装 git for windows, 再安装 tortoise git
  2. 安装 git for windows 一路 next 即可.
  3. 安装 tortoise git 中需要配置 git.exe, 这个是 git for windows 包含的部分. 如果 git for windows 安装成功, 这 一步使用默认结果即可.
  4. 安装 tortoise git 还需要配置姓名和邮箱, 这个尽量和 Github 的邮箱填成一致.
  5. 两个工具安装完毕后, 需要重启电脑才能正确使用.

使用 Github 创建项目

GitHub打不开~

博主发了解决办法,链接如下:

解决GitHub无法访问的问题:手动修改hosts文件与使用SwitchHosts工具-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/Srlua/article/details/136403564?spm=1001.2014.3001.5501

注册账号

这个比较简单, 参考着官网提示即可.,需要进行邮箱校验。

创建项目

1. 登陆成功后 , 进入个人主页 , 点击左下方的 New repository 按钮新建项目

2. 然后跳转到的新页面中输入项目名称(注意, 名称不能重复, 系统会自动校验. 校验过程可能会花费几秒钟). 校验完毕后, 点击下方的 Create repository 按钮确认创建.

3. 在创建好的项目页面中复制项目的链接, 以备接下来进行下载.

下载项目到本地

1. 复制刚才创建好的项目的链接.

2. 打开指定的需要放置项目的目录

3. 右击目录, 点击 Git Clone

4. 在弹出的对话框中输入刚才复制的项目链接即可

下载成功, 会出现绿色图标.

Git 操作的三板斧

放入代码

使用 VS 创建工程, 并把工程放在刚才下载到本地的项目路径中.

或者将曾经写过的代码的工程目录直接拷贝到项目目录中.

三板斧第一招: git add

告知 git 工具哪些文件需要进行版本管理

此时右击标记为 蓝色 ? (表示该文件未使用 git 管理) 的目录, 选择 add

弹出的对话框中勾选具体需要管理的文件. 勾选完毕点击 ok 即可.

此时图标变成红色感叹号(表示该文件被git管理, 但是未提交内容)

三板斧第二招: git commit

将修改内容提交到本地

每提交一次, 就是一个版本. 比如开发完某个功能模块, 就可以提交一次了. 后续进行版本回退都是以提交为准.

注意:此时只是提交到本地, Github 上还看不到代码变更.

右键选择 红色感叹号 目录, 选择 Git commit -> master

此时弹出了一个对话框. 可以在此处看到都需要提交哪些文件, 以及每个文件的具体改动情况. 并且需要输入提交日志. 描述这次提交的具体改动原因是什么. 这个日志是后续进行版本回退的重要参考依据.

三板斧第三招: git push

提交的内容需要同步到服务器上, 才能让其他人看到改动. 使用 push 即可.

右键需要 push 的目录, 点击 push

弹出的对话框确认 push. 不需要修改, 直接确认即可.

然后会弹出对话框提示输入 Github 的账户和密码 .
用户名密码输入正确, 点击 Login , 即可完成 push. 此时刷新 Github 的界面 , 就能看到新版本的代码了。

小结

掌握了以上 Git & Github 基本操作, 希望同学们都能够把 Github 用起来, 记录自己的学习过程, 打造自己的专属名片. 如果自己的 Github 日历能够一片绿色, 这是向面试官证明自己靠谱的最有力的证据。

希望对你有帮助!加油!

若您认为本文内容有益,请不吝赐予赞同并订阅,以便持续接收有价值的信息。衷心感谢您的关注和支持!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1485223.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机设计大赛 深度学习机器视觉车道线识别与检测 -自动驾驶

文章目录 1 前言2 先上成果3 车道线4 问题抽象(建立模型)5 帧掩码(Frame Mask)6 车道检测的图像预处理7 图像阈值化8 霍夫线变换9 实现车道检测9.1 帧掩码创建9.2 图像预处理9.2.1 图像阈值化9.2.2 霍夫线变换 最后 1 前言 🔥 优质竞赛项目系列,今天要分…

MyBatis 学习(七)之 缓存

目录 1 MyBatis 缓存介绍 2 一级缓存 3 二级缓存 3.1 二级缓存介绍 3.2 二级缓存配置 3.3 二级缓存测试 4 参考文档 1 MyBatis 缓存介绍 MyBatis 缓存是 MyBatis 中的一个重要特性,用于提高数据库查询的性能。MyBatis 提供了一级缓存和二级缓存两种类型的缓存…

数据结构:栈和队列的实现附上源代码(C语言版)

目录 前言 1.栈 1.1 栈的概念及结构 1.2 栈的底层数据结构选择 1.2 数据结构设计代码(栈的实现) 1.3 接口函数实现代码 (1)初始化栈 (2)销毁栈 (3)压栈 (4&…

求最短路径之BF算法

介绍 全称Bellman-Ford算法,目的是求解有负权边的最短路径问题。 考虑环,根据环中边的边权之和的正负,将环分为零环、正环、负环。其中零环、正环不会影响最短路径的求解,而负环会影响最短路径的求解。 可用BF算法返回一个bool值…

java开发环境配置一指禅

IDEA下载与安装 IDEA 全称 IntelliJ IDEA,是java编程语言的集成开发环境。 idea下载地址 。 JDK安装配置 JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环…

vue项目获取拼音首字母

工具包 pinyin-pro npm install pinyin-pro 官方地址 pinyin-pro | pinyin-pro性能优异、转换准确的 js 中文转拼音工具https://pinyin-pro.cn/示例代码(获取每个汉字的拼音首字母) import {pinyin} from pinyin-pro;function getPinyinInitial(name){if (name) {let py p…

aop监控spring cloud接口超时,并记录到数据库

引入pom <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0…

PlantUML简介

PlantUML简介 plantUML是一款开源的UML图绘制工具&#xff0c;支持通过文本来生成图形&#xff0c;使用起来非常高效。可以支持时序图、类图、对象图、活动图、思维导图等图形的绘制。你可以在IDEA中安装插件来使用PlantUML, 或者在Visual Studio Code中安装插件。 也可以在dra…

2024免费mac苹果电脑的清理和维护软件CleanMyMac X

对于 Mac 用户来说&#xff0c;电脑的清理和维护是一件让人头疼的事情。但是&#xff0c;有了 CleanMyMac X&#xff0c;这一切都将变得轻松愉快。CleanMyMac X 是一款专为 Mac 设计的电脑清理软件&#xff0c;它以其强大的功能和简单的操作&#xff0c;让无数用户为之倾倒。 C…

C语言学习DAY22

内存泄漏&#xff1a;开辟的内存空间不使用了&#xff0c;但不释放该内存空间。

AutoSAR(基础入门篇)13.3-Mcal Dio配置

目录 一、Dio port配置 二、Dio pin配置 一、Dio port配置 同之前的Port一样,双击进入Dio配置界面后会看到几乎差不多的配置界面。General和Port类似,我们不再赘述,主要讲解Dio的配置 1. 其实Dio并没有什么实质的作用,主要起到了一个重命名的功能。双击DioConfig_0进入下…

spring项目单元测试

单元测试 每个功能开发完&#xff0c;项目上线前都要做单元测试 引入依赖 AssertJ&#xff1a;断言 测试用例 编写测试用例要求&#xff1a;保证测试方法的独立性 当前测试方法不能依赖于别的测试方法&#xff0c;也不依赖于数据库中某条特定数据。 如A方法插入一条数据&a…

在网页上踢球:打造我自己的python(Django)足球网站

足球不仅仅是球场上的90分钟。它是一个不断发展的故事&#xff0c;一个全球球迷社群的粘合剂&#xff0c;一个数据和热情交织的世界。作为一名开发者和球迷&#xff0c;我决定将这两大爱好结合起来&#xff0c;用 Django 打造一个足球网站&#xff0c;让球迷们能够追踪他们最爱…

LeetCode --- 三数之和

题目描述 三数之和 代码解析 暴力 在做这一道题的时候&#xff0c;脑海里先想出来的是暴力方法&#xff0c;一次排序&#xff0c;将这个数组变为有序的&#xff0c;再通过三次for循环来寻找满足条件的数字&#xff0c;然后将符合条件的数组与之前符合条件的数组进行一一对比…

YOLOv9独家原创改进|使用HWD:Haar小波下采样模块

专栏介绍&#xff1a;YOLOv9改进系列 | 包含深度学习最新创新&#xff0c;主力高效涨点&#xff01;&#xff01;&#xff01; 一、论文简介 最大池化或跨步卷积等下采样操作在卷积神经网络&#xff08;CNNs&#xff09;中广泛使用&#xff0c;以聚合局部特征&#xff0c;扩大感…

基于springboot+vue的客户关系管理系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

Linux系统管理:虚拟机 Kali Linux 安装

目录 一、理论 1.Kali Linux 二、实验 1.虚拟机Kali Linux安装准备阶段 2.安装Kali Linux 2. Kali Linux 更换国内源 3. Kali Linux 设置固定IP 4. Kali Linux 开启SSH远程连接 5. MobaXterm远程连接 Kali Linux 三、问题 1.apt 命令 取代哪些 apt-get命令 一、理论…

ChatGPT支持下的PyTorch机器学习与深度学习技术应用

近年来&#xff0c;随着AlphaGo、无人驾驶汽车、医学影像智慧辅助诊疗、ImageNet竞赛等热点事件的发生&#xff0c;人工智能迎来了新一轮的发展浪潮。尤其是深度学习技术&#xff0c;在许多行业都取得了颠覆性的成果。另外&#xff0c;近年来&#xff0c;Pytorch深度学习框架受…

探索那些能唤起情感共鸣的壁纸

1、方小童在线工具集 网址&#xff1a; 方小童 该网站是一款在线工具集合的网站&#xff0c;目前包含PDF文件在线转换、随机生成美女图片、精美壁纸、电子书搜索等功能&#xff0c;喜欢的可以赶紧去试试&#xff01;

平台工程: 用Backstage构建开发者门户 - 2

本文介绍了如何使用开源Backstage构建自己的开发者门户&#xff0c;并基于此实践平台工程。本系列共两篇文章&#xff0c;这是第二篇。原文: Platform Engineering: Building Your Developer Portal with Backstage — Part 2 在本教程第一部分中我们了解了Backstage这个用于构…