Git 入门指南:如何高效管理你的代码库

文章目录

  • Git 的介绍
  • 安装 `Git`
  • 创建仓库
  • `Git` 三板斧
    • `add`
    • `commit`
    • `push`
  • 冲突问题
  • 常用 `Git` 指令

Git 的介绍

Git 是一个分布式版本控制系统,用于跟踪文件的变化并支持团队协作开发。最初由 Linus TorvaldsLinux 操作系统的创始人)开发,Git 在开发者中变得非常流行,尤其是因为其高效、灵活和能够支持分布式开发的特点。

主要特点和概念

  1. 分布式版本控制

    • 分布式:每个使用 Git 的开发者都拥有完整的代码库副本,并且可以在本地进行操作,不需要依赖中央服务器。这使得 Git相比于集中式版本控制系统(如 SVN)更具有灵活性和抗故障能力。
    • 本地提交:开发者可以在本地进行提交和版本管理,而无需立即与远程仓库同步。可以在网络连接不稳定的情况下继续工作,等到合适的时机再推送更改。
  2. 版本历史和快照

    • Git 会记录每次提交的快照,而不是像其他版本控制系统那样记录差异(差异文件)。每个提交实际上都是代码库状态的完整快照。这样,不仅能恢复历史版本,还能快速了解代码库的变化。
    • 提交(commit)时,Git 会为每次提交生成一个唯一的哈希值(SHA-1),这使得每个提交都可以通过哈希值唯一标识。
  3. 分支与合并(Branching and Merging)

    • Git 的分支管理非常灵活且轻量级。开发者可以在分支上独立工作,然后将分支合并到主分支(通常是 mainmaster)。
    • 分支的创建和切换几乎没有成本,允许开发者同时处理多个功能、修复或者实验性工作,而不干扰主线开发。
    • 合并(merge)允许将不同分支的更改整合到一起,Git 会尽可能智能地自动处理冲突,如果有冲突,开发者需要手动解决。
  4. 工作区、暂存区与版本库

    • 工作区Working Directory):是开发者正在进行编码的地方,包含所有的文件和代码。
    • 暂存区Staging Area):是一个中间区域,允许开发者选择性地将更改“暂存”起来,准备提交。可以理解为一个待提交的文件集合。
    • 版本库Repository):是 Git 存储代码版本历史的地方。每当你执行提交时,Git 会将当前的代码快照保存到版本库中。
  5. 远程仓库(Remote Repositories

    • Git 支持远程仓库,允许多人协作开发。开发者可以将本地仓库的更改推送(push)到远程仓库,也可以从远程仓库拉取(pull)最新的更改。
    • 常见的 Git 托管平台有 GitHubGitLabBitbucket 等,它们提供了托管 Git 仓库的服务,方便团队进行协作。

安装 Git

Linux (Ubuntu)系统中,使用以下命令来安装 Git

sudo apt update
sudo apt install git

使用 git --version来查看是否安装成功:
在这里插入图片描述

创建仓库

我们以 gitee 做演示如何创建远端仓库,github 也是同样的道理。

  1. 在你的个人主页找到新建仓库
    在这里插入图片描述
    对你要新建的仓库做各种设置
    在这里插入图片描述
    在你的新建的仓库界面找到 clone 到本地的终端指令
    在这里插入图片描述
    在这里插入图片描述

  2. 在终端上执行 clone 指令,然后输入你 gitee 的账号和账号密码。需要注意的是,你只能将远端仓库 clone 到空目录,一个目录下只能有1个本地仓库。
    在这里插入图片描述
    在这里插入图片描述

补充:我们进到到 test 目录里,使用 ls -al 指令,如下图:
在这里插入图片描述

  • 仓库目录其实是工作区,并不是真正的本地仓库,也就是说你在仓库目录写的代码需要手动上传到本地仓库中。
  • .git 这个隐藏目录才是真正的本地仓库

Git 三板斧

add

git add filename
  • 将当前目录下的文件上传到暂存区里。

暂存区存在的意义:当你需要多次提交时候,你就可以将多次提交的文件存放在暂存区,最后一次性上传到本地仓库。

commit

git commit -m "message"
  • 将暂存区的所有文件上传到你的本地仓库里。

  • -m 代表这次修改的相关信息,保存在日志信息里。

在这里插入图片描述

使用 git status 来查看当前相关文件的状态
在这里插入图片描述
使用 git log 来查看日志信息
在这里插入图片描述

注意:当你第一次执行该指令时会报错提醒需要配置用户信息,执行以下指令即可。

git config --global user.name "your name"
git config --global user.email "you@example.com"

push

git push
  • 将你本地仓库的代码和文件推送到远端仓库(该过程要输入你 gitee 的账号与账号密码)

在这里插入图片描述
推送到远端仓库后,我们就可以在 gitee 上查看了。
在这里插入图片描述

冲突问题

如果远端仓库与本地仓库不一致的话,我们是直接 commit 是会报错的,需要同步两个仓库的信息才可以。
在这里插入图片描述
我们只需要将远端仓库拉取到本地就可以完成同步。

git pull

常用 Git 指令

  • git init:初始化一个新的 Git 仓库。
  • git clone:从远程仓库克隆一个本地副本。
  • git status:查看当前工作区的状态(哪些文件被修改了,哪些文件已经暂存等)。
  • git add:将文件添加到暂存区,为提交做准备。
  • git commit:提交暂存区的更改,保存到本地仓库。
  • git push:将本地的更改推送到远程仓库。
  • git pull:从远程仓库拉取并合并最新的更改。
  • git merge:将一个分支的更改合并到当前分支。
  • git branch:列出、创建或删除分支。
  • git log:查看提交历史。

Have a good day😏

See you next time, guys!😁✨🎞
请添加图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

execl条件比较两个sheet每个单元格的值

1.把对比的sheet复制到对比文件中 2.选择首个单元格 3.新建规则 4.选择公式 5.编写公式 A3<>Sheet1!A36.选择差异颜色 7.选择应用范围 $1:$655368.选择应用范围

2025新年源码免费送

2025很开门很开门的源码免费传递。不需要馒头就能获取4套大开门源码。 听泉偷宝&#xff0c;又进来偷我源码啦&#x1f44a;&#x1f44a;&#x1f44a;。欢迎偷源码 &#x1f525;&#x1f525;&#x1f525; 获取免费源码以及更多源码&#xff0c;可以私信联系我 我们常常…

本地LLM部署--Open WebUI(多媒体工具FFMPEG作用)

OpenWebUI 和 FFmpeg 的关系主要体现在 多媒体处理需求 上。OpenWebUI 是一个基于 Web 的接口项目&#xff0c;提供与各种 AI 模型交互的功能&#xff0c;而 FFmpeg 则是一种多媒体处理工具&#xff0c;用于处理音视频数据。二者的关系主要体现为 依赖和功能互补&#xff0c;具…

使用双向链表优化数组操作的性能

&#x1f3ac; 江城开朗的豌豆&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 &#x1f4dd; 个人网站 :《 江城开朗的豌豆&#x1fadb; 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! 目录 背景 双向链表的优势 实现方案 性能优化 …

Inno Setup制作安装包,安装给win加环境变量

加 ; 加环境变量&#xff0c;开启&#xff0c;下面一行 ChangesEnvironmentyes 和 ; 加环境变量wbrj变量名&#xff0c;{app}\project\bin变量值&#xff0c;{app}\后接文件名&#xff0c;{app}表示安装路径。下面一行,{olddata};原来的值上拼接 Root: HKLM; Subkey: “SYSTEM\…

积分与签到设计

积分 在交互系统中&#xff0c;可以通过看视频、发评论、点赞、签到等操作获取积分&#xff0c;获取的积分又可以参与排行榜、兑换优惠券等&#xff0c;提高用户使用系统的积极性&#xff0c;实现引流。这些功能在很多项目中都很常见&#xff0c;关于功能的实现我的思路如下。 …

Taro+Vue实现图片裁剪组件

cropper-image-taro-vue3 组件库 介绍 cropper-image-taro-vue3 是一个基于 Vue 3 和 Taro 开发的裁剪工具组件&#xff0c;支持图片裁剪、裁剪框拖动、缩放和输出裁剪后的图片。该组件适用于 Vue 3 和 Taro 环境&#xff0c;可以在网页、小程序等平台中使用。 源码 https:…

AI赋能服装零售:商品计划智能化,化危机为转机

在服装零售这片竞争激烈的战场上&#xff0c;每一个细微的决策都可能成为品牌兴衰的关键。当市场波动、消费者口味变化、供应链挑战接踵而至时&#xff0c;许多品牌往往将危机归咎于外部环境。然而&#xff0c;真相往往更为深刻——“危机不是外部的&#xff0c;而是你的商品计…

Flutter:吸顶效果

在分页中&#xff0c;实现tab吸顶。 TDNavBar的screenAdaptation: true, 开启屏幕适配。 该属性已自动对不同手机状态栏高度进行适配。我们只需关注如何实现吸顶。 view import package:ducafe_ui_core/ducafe_ui_core.dart; import package:flutter/material.dart; import p…

企业级PHP异步RabbitMQ协程版客户端 2.0 正式发布

概述 workerman/rabbitmq 是一个异步RabbitMQ客户端&#xff0c;使用AMQP协议。 RabbitMQ是一个基于AMQP&#xff08;高级消息队列协议&#xff09;实现的开源消息组件&#xff0c;它主要用于在分布式系统中存储和转发消息。RabbitMQ由高性能、高可用以及高扩展性出名的Erlan…

信号弱开启手机Wifi通话,MIUI显示/隐藏5G开关的方法

1.开启手机Wi-Fi通话&#xff0c;提升无信号或弱信号时的通话质量 Wi-Fi 通话(Wi-Fi calling)&#xff0c;又称VoWiFi&#xff0c;是一项名为“ Voice over Wi-Fi ”的服务&#xff0c;它允许手机用户使用他们的智能手机使用 Wi-Fi网络拨打电话&#xff0c;即在Wi-Fi环境下就能…

Echarts的认识和基本用法

Echarts介绍和使用 Echarts介绍 官网地址&#xff1a;Apache ECharts Echarts是一个基于JavaScript的开源可视化图表库&#xff0c;由百度前端开发团队研发和维护。它提供了丰富的图表类型、数据统计分析、动态数据更新、多维数据展示等功能&#xff0c;可以帮助开发人员在 W…

在JavaScript开发中,如何判断对象自身为空?

前言 如何判断一个对象为空是我们在开发中经常会遇到的问题&#xff0c;今天我们来聊聊几种经常使用的方法&#xff0c;以及在不同的场景下我们如何去使用。 1. JSON.stringify JSON.stringify 方法可以使对象序列化&#xff0c;转为相应的 JSON 格式。 const obj {};cons…

大语言模型训练的数据集从哪里来?

继续上篇文章的内容说说大语言模型预训练的数据集从哪里来以及为什么互联网上的数据已经被耗尽这个说法并不专业&#xff0c;再谈谈大语言模型预训练数据集的优化思路。 1. GPT2使用的数据集是WebText&#xff0c;该数据集大概40GB&#xff0c;由OpenAI创建&#xff0c;主要内…

Wireshark 学习笔记1

1.wireshark是什么 wireshark是一个可以进行数据包的捕获和分析的软件 2.基本使用过程 &#xff08;1&#xff09;选择合适的网卡 &#xff08;2&#xff09;开始捕获数据包 &#xff08;3&#xff09;过滤掉无用的数据包 &#xff08;4&#xff09;将捕获到的数据包保存为文件…

RK3568平台(USB篇)禁用USB端口

一.linux中怎样查看usb的端口号 在USB口插入U盘: [ 198.141319][ T106] usb 3-1.3: new SuperSpeed Gen 1 USB device number 5 using xhci-hcd [ 198.161695][ T106] usb 3-1.3: New USB device found, idVendor=0781, idProduct=5591, bcdDevice= 1.00 [ 198.161721]…

3298.统计重新排列后包含另一个字符串的字符串数目 I II滑动窗口 优化思路解析全网最详细

II相比于I是数据范围变成了10的6次方了 我们来维护大小关系&#xff0c;把不用的都去掉&#xff0c;优化到O&#xff08;26n&#xff09; 首先判断一下要找子字符串的s长度是否小于t字符串&#xff0c;如果小于的话直接返回0 初始答案变量和left左指针为0 用Counter来记录t中所…

双向导航和单向导航

目录 双向导航 单向导航 迁移数据库异常 解决办法 1.导航属性改为空 2.使用 ON DELETE NO ACTION 或 ON UPDATE NO ACTION 选择 双向导航 一对多&#xff1a;一个Article有多个Comment class Article {public long Id { get; set; }public string Title { get; set; }pu…

静态路由配置与调试——计算机网络实训day1

TOC 软件及基本配置下载 通过网盘分享的文件&#xff1a;计网实训 链接: https://pan.baidu.com/s/1AY5qNSN1dnw5Vy1OtwdJGg?pwdijde 提取码: ijde 操作前准备 1.下载软件 2.双击1.基本配置.pkt 3.进入实验环境 一、实验目的 1、掌握路由器的基本配置&#xff1b; 2、掌握…

EasyExcel上传校验文件错误信息放到文件里以Base64 返回给前端

产品需求&#xff1a; 前端上传个csv 或 excel 文件&#xff0c;文件共4列&#xff0c;验证文件大小&#xff0c;类型&#xff0c;文件名长度&#xff0c;文件内容&#xff0c;如果某行某个单元格数据验证不通过&#xff0c;就把错误信息放到这行第五列&#xff0c;然后把带有…