6---Linux下版本控制器Git的知识点

news2024/9/23 9:21:31

一、Linux之父与Git的故事:

  • Linux之父叫做“Linus Torvalds”,我们简称为雷纳斯。
  • Linux是开源项目,所以在Linux的早期开发中,许多世界各地的能力各异的程序员都参与到Linux的项目开发中。那时,雷纳斯每天都会收到许许多多邮件,里面是每个程序员自己的代码,雷纳斯要审核其中的代码并且不断添加到Linux的源码中。
  • 这种工作使得雷纳斯不断压缩自己的私人时间,终于他受不了了。于是他想要有一款分布式版本控制系统,可以让开发者在本地创建分支和进行合并操作,无需每次都与中央服务器通信。也能够让开发者可以独立工作并在本地仓库中进行提交,然后再与其他开发者同步更改
  • 于是他就找到了BitKeeper,但是BitKeeper是商业软件,需要付费使用。违背了雷纳斯对开源原则的信仰,并且使用收费的版本控制软件可能会排斥一些开发者,限制了他们参与项目的能力。于是雷纳斯和其团队决定放弃使用BitKeeper。
  • BitKeeper的老板听闻后,决定免费向Linux社区提供BitKeeper的使用权限。后来由于社区内部的一些矛盾和冲突(Linux内核开发社区中的一些成员对于依赖BitKeeper这样一个闭源的商业软件一直存在不满。他们担心使用一个闭源工具来开发开源软件会带来潜在的问题,比如数据锁定和对商业公司的依赖。于是Andrew Tridgell,知名的开源开发者(Samba项目的主要开发者之一),尝试逆向工程BitKeeper的协议以便创建一个开源的替代工具。这一举动被BitMover公司视为威胁,认为这可能违反了他们的使用协议。),最终导致BitMover公司决定收回Linux社区的免费使用权限。
  • BitMover公司撤回Linux社区免费使用BitKeeper的权限,对Linux内核的开发产生了重大影响,因为开发者们突然失去了他们依赖的版本控制工具。面对这一情况,雷纳斯迅速采取行动。决定自己开发一个新的版本控制系统。并在短短的几个星期内就完成了基本功能。且进行了开源,于是乎Git就诞生了。
  • 由于Git是开源软件,内核开发者迅速采用了它,并对其进行了改进和扩展。
  • Git不仅解决了Linux内核开发的版本控制问题,还迅速成为全球最流行的版本控制系统。现在被广泛应用于各种开源和商业项目,许多开发团队使用它来管理代码库。

二、Git操作:

2.1Git创建仓库:

  • 创建时的步骤:

        

  • 创建完成后的样子:

        

2.2删除仓库:

  • 点击管理->删除仓库

        

  • 确认删除

        

2.3创建本地仓库:

  • 复制远端仓库链接:

        

  • 查看当前Linux是否安装了git:

        

git --version

  • 如果没有显式版本,可以先安装:

        

sudo yum install -y git

  • 本地先创建一个目录,然后输入指定代码,建立两个仓库之间的链接:

        

git clone + 远端仓库链接

  • 配置完成:

        

2.4提交本地代码到远端仓库:

  • 将代码放到刚才下载好的目录中
git add .
  • 提交改动到本地:

        完成该步骤之后,已经将本地代码的变化添加到了本地的.git仓库中。

git commit -m “本次提交的核心信息,不要乱写”
  • 同步到远端服务器上:需要填入用户名密码.同步成功后,刷新 Github 页面就能看到代码改动了.
git push

2.5 查看提交日志:

git log

2.6同步远端仓库到本地:

  • 如果有人克隆我的开源仓库到本地,当我更新了自己的本地仓库并且同步了远程仓库。其他人想要在克隆的本地仓库看到我的更新,就需要以下指令先更新自己的本地仓库。
git pull

2.7多人协同,如何判断其他人是否有过提交?

  • 正常提交,如果push成功,说明远端仓库没有被修改过。
  • 如果远端仓库有别人更新,这次push就不会成功,就需要自己先git pull将远端仓库和自己本地仓库同步,然后再push。

2.8查看当前仓库是否完全提交:

  • 使用指令git status查看当前仓库是否有文件未被提交。
  • 如果有文件未被提交,会说明哪个文件没有被提交。
git status

三、首次git,需要的配置解析:

  • 首次向git提交代码,需要提交邮箱和用户名:

        

  • 只需要将以上两条代码分别复制,然后将双引号中的内容更改为自己的邮箱和用户名即可。
  • 之后的提交都可以正常提交了。

四、.gitignore文件解析:

  • 可以理解为一个文件过滤器,过滤掉不想上传到远端仓库的文件。
  • 向.gitignore文件中添加文件后缀,所有在该文件中声明的后缀,在上传文件到远端仓库时,都会被过滤掉。

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

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

相关文章

在浏览器执行js脚本的两种方式

fetch请求get 在浏览器执行http请求,可以使用fetch函数; fetch(“url”).then(response => response.text()) .then(data => console.log(JSON.parse(data)[‘status’])) .catch(error => console.error(error)) 直接返回json数据: fetch(“url”).then(response…

如何进行事务处理

1、问题背景 在数据库存储系统中,事务处理是一种保证多个数据库操作作为单个逻辑单元执行的技术。事务处理可以确保数据的一致性、完整性和隔离性。 在使用 Google Cloud Datastore 时,可以使用 datastore.transaction() 函数来进行事务处理。datastor…

ubuntu在conda环境中使用 pip install -r requirements.txt但是没有安装在虚拟环境中

whereis pip pip listubuntu在conda环境中使用pip install lpips0.1.3 但是安装在了这里 Requirement already satisfied: lpips0.1.3 in /home/uriky/anaconda3/lib/python3.11/site-packages (0.1.3) 就会出现黄色波浪,未在虚拟环境中安装包 解决办法1&#xff1…

在云服务器上运行StyleGAN3生成伪样本

首先是传入数据,这里我们不做赘述。 对于数据格式的裁剪,可以通过以下代码进行: from glob import glob from PIL import Image import os from tqdm import tqdm from tqdm.std import trangeimg_path glob(r"C:\Users\Administrato…

uniapp使用地图开发app, renderjs使用方法及注意事项

上次提到uniapp开发地图app时得一些问题,最后提到使用renderjs实现app中使用任何地图(下面将以腾讯地图为例,uniapp中写app时推荐使用得是高德地图,无法使用腾讯地图(renderjs方式除外))。 1、…

独立静态ISP:互联网连接的新选择

在数字化时代,互联网连接的质量直接影响着我们的工作与生活。随着技术的发展,独立静态ISP(Internet Service Provider,互联网服务提供商)逐渐成为企业和个人用户关注的焦点。本文将从五个方面探讨独立静态ISP的优势、应…

Trieve实践:好用功的开源RAG

目录 RAG概述 RAG架构 Trieve Trieve介绍 Trieve使用 初始化 自行搭建RAG Trieve是什么,RAG是什么,本文来带你了解。其实在很多产品应用里面都会有RAG,比如ai客服,针对性的智能问答,都是基于RAG实现的 RAG概述 RAG 是一种…

【竞技宝】英超:曼城击败热刺,赢西汉姆联就夺冠

曼城在英超补赛中跟热刺相遇,这场比赛对于双方来说都必须赢。曼城要是拿不下热刺,联赛夺冠形势就不容乐观。热刺则是需要击败曼城,保留拿到下赛季欧冠的一线希望。所以,热刺和曼城开场就全力以赴。上半场热刺和曼城门将都做出精彩扑救,比分维持在0比0。下半场曼城金靴哈兰德发威…

基于springboot实现医药管理系统项目【项目源码+论文说明】

基于springboot实现医药管理系统演示 摘要 计算机网络发展到现在已经好几十年了,在理论上面已经有了很丰富的基础,并且在现实生活中也到处都在使用,可以说,经过几十年的发展,互联网技术已经把地域信息的隔阂给消除了&…

airmon-ng start wlan0

错误原因:有一些后台程序干扰,导致无法成功启动监听模式 解决,关闭提示的进程即可 kill -9 PID号

apache与nginx下安装zabbix

apache下安装zabbix #进入zabbix官网 https://www.zabbix.com/ #选择好要配置的服务#安装zabbix存储库 [rootzabbix-server ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm [rootzabbix-server ~]# yum clean all #清理…

C++ STL概念之 迭代器

什么是迭代器 迭代器(Iterator)是一个在容器中访问元素的对象,提供了一种方法来顺序访问容器中的元素,而无需暴露容器的底层表示。 或者说 行为像指针一样的类型。可能是指针也可能是被类封装的指针,不关注容器底层细…

SWAT模型高阶应用暨SWAT模型无资料地区建模、不确定分析及气候、土地利用变化对水资源与面源污染影响分析

原文链接:SWAT模型高阶应用暨SWAT模型无资料地区建模、不确定分析及气候、土地利用变化对水资源与面源污染影响分析https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247604401&idx4&snd2d39846dce07bee765c820de1cf92f3&chksmfa821956cdf5904…

GM812条码模块的技术参数

扫码性能参数 *测试条件:环境温度23℃;环境照度300 LUX; **测试条件:测试距离(最小景深最大景深)/2; 环境温度23℃;环境照度300 LUX; *规格如有更改,恕不另…

嵌入式学习72-复习(字符设备驱动框架)

编辑 drivers/char/Kconfig 为了在make menuconfig是能够显示出我们写的驱动程序 make menuconfig 编辑 drivers/char/Makefile 才是真正把编写好的源文件加入到编译中去 make modules cp drivers/char/first_driver.ko ~/nfs/rootfs/

Kotlin扩展函数和运算符重载

扩展函数 fun String.lettersCount():Int{var count 0for(i in this){if(i.isLetter())count}return count } fun main(){val str:String "12we"println(str.lettersCount()) } 相当于直接将方法写在类里面。函数体内可以直接使用this而不用传参。 运算符重载 …

织梦dedecms企业网站模板安装教程

很多新手在拿到织梦模板后不知道如何安装,所以,云部落(Yunbuluo.Net)资源网专门整理了一份图文版织梦模板通用安装教程,希望对大家有所帮助。 第一步: 将域名解析绑定好之后,上传下载的模板至您的WEB根目录中&#xf…

品鉴中的食物搭配:如何创造美味的红酒与食物组合

品鉴云仓酒庄雷盛红酒时,食物搭配是一个不可忽视的环节。通过巧妙的搭配,红酒与食物可以相互衬托,呈现出更加美妙的风味。下面就让我们一起探讨如何创造美味的红酒与食物组合。 首先,了解红酒与食物的搭配原则是关键。一般来说&a…

React Native 开发心得分享

有一段时间没更新了,花了点时间研究了下 React Native(后续用 RN 简称),同时也用该技术作为我的毕设项目(一个校园社交应用,仿小红书),经过了这段时间的疯狂折腾,对 RN 生态有了一定的了解&…

国际生物多样性科普暨母亲节亲子活动在天河公园举行

引言:"人类是命运共同体,不论是战胜新冠疫情,还是加强生物多样性保护,实现全球可持续发展,唯有团结合作,才能有效应对全球性挑战。生态兴则文明兴。我们应该携手努力,共同推进人与自然和谐…