Git简介与详细教程
一、简介
什么是Git?
Git是一款分布式版本控制系统,由Linux之父Linus Torvalds于2005年开发。它旨在快速、高效地处理从小型到大型项目的所有内容。Git与传统的版本控制系统相比,具备显著的优势,主要体现在其分布式架构、强大的分支管理和高效的处理能力。
Git的特点
- 分布式架构:每个开发者的工作目录都是一个完整的版本库,包含项目的全部历史记录。
- 高效的性能:Git在处理大项目时表现出色,能够快速地进行分支、合并和其他操作。
- 强大的分支管理:Git的分支操作简单且快捷,适合灵活的开发工作流。
- 数据完整性:所有数据都使用SHA-1散列进行校验,确保版本库的完整性和一致性。
二、Git的基本概念
- 版本库(Repository):存储项目的目录,包含所有文件及其历史版本。
- 工作区(Working Directory):用户当前操作的目录,包含项目的实际文件。
- 暂存区(Staging Area):临时保存更改的区域,用于构建下次提交的快照。
- 提交(Commit):将暂存区中的更改记录到版本库,形成一个新的快照。
- 分支(Branch):独立的开发线,可以并行进行开发,互不干扰。
- 远程仓库(Remote Repository):存储在远程服务器上的版本库,通常用于团队协作。
三、安装与配置
安装Git
-
Windows:从Git官网下载并安装,安装过程中可以选择安装Git Bash。
-
macOS:通过Homebrew安装:
brew install git -
Linux:通过包管理器安装,例如在Debian/Ubuntu系统中:
sudo apt-get install git
配置Git
安装完成后,进行初始配置,设置用户名和邮箱:
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
四、基本操作教程
创建与克隆仓库
-
创建一个新的Git仓库:
mkdir myproject cd myproject git init -
克隆一个现有的仓库:
git clone https://github.com/user/repository.git
添加与提交更改
-
添加文件到暂存区:
git add filename # 添加指定文件 git add . # 添加所有更改的文件 -
提交更改到版本库:
git commit -m "Commit message"
查看状态与日志
-
查看当前仓库状态:
git status -
查看提交历史:
git log
分支管理
-
查看所有分支:
git branch -
创建新分支:
git branch new-branch -
切换分支:
git checkout new-branch
合并分支
-
合并分支到主分支:
git checkout main git merge new-branch
处理远程仓库
-
添加远程仓库:
git remote add origin https://github.com/user/repository.git -
推送更改到远程仓库:
git push origin main -
从远程仓库拉取最新更改:
git pull origin main
五、常见Git命令总结
git init:初始化一个新的Git仓库。git clone <repo>:克隆一个远程仓库。git add <file>:添加文件到暂存区。git commit -m "message":提交暂存区的文件到仓库。git status:查看当前工作区的状态。git log:查看提交历史。git branch:查看、创建和删除分支。git checkout <branch>:切换分支。git merge <branch>:合并分支。git remote:管理远程仓库。git push:推送更改到远程仓库。git pull:从远程仓库拉取更改。
通过以上步骤,您可以基本掌握Git的使用,并开始有效地管理您的项目版本。
相关文章:
Git简介与详细教程
一、简介 什么是Git? Git是一款分布式版本控制系统,由Linux之父Linus Torvalds于2005年开发。它旨在快速、高效地处理从小型到大型项目的所有内容。Git与传统的版本控制系统相比,具备显著的优势,主要体现在其分布式架构、强大的…...
创建OpenWRT虚拟机
环境:Ubuntu 2204,VM VirtualBox 7.0.18 安装必备软件包: sudo apt update sudo apt install subversion automake make cmake uuid-dev gcc vim build-essential clang flex bison g gawk gcc-multilib g-multilib gettext git libncurses…...
智慧安防新篇章:如何科学设定可燃气体报警器校准检测周期
随着科技的快速发展,智慧安防系统已成为现代社会不可或缺的一部分。在各类安全监测设备中,可燃气体报警器因其对潜在危险的及时预警功能而备受关注。 接下来,佰德将围绕可燃气体报警器的校准检测周期进行深入探讨,以确保其在智慧…...
如何优化Spring Boot应用的启动时间
如何优化Spring Boot应用的启动时间 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将讨论如何优化Spring Boot应用的启动时间,提升应用的性…...
(Effective C) 2.3 作用域
(Effective C) 2.3 作用域 文章目录 (Effective C) 2.3 作用域前言🔢4大作用域1️⃣文件作用域2️⃣块作用域3️⃣函数原型作用域4️⃣函数作用域 ⭐作用域性质📖实例CodeEND关注我 前言 作用域应用于标识符的某个特定声明。 标识符包含对象࿰…...
Python 基础 (标准库):堆 heap
1. 官方文档 heapq --- 堆队列算法 — Python 3.12.4 文档 2. 相关概念 堆 heap 是一种具体的数据结构(concrete data structures);优先级队列 priority queue 是一种抽象的数据结构(abstract data structures)&…...
动手学深度学习(Pytorch版)代码实践 -卷积神经网络-30Kaggle竞赛:图片分类
30Kaggle竞赛:图片分类 比赛链接: https://www.kaggle.com/c/classify-leaves 导入包 import torch import torchvision from torch.utils.data import Dataset, DataLoader from torchvision import transforms import numpy as np import pandas as…...
【LeetCode】每日一题:数组中的第K大的元素
给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。 请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。 解题思路 第一种是快排,快…...
Keil5.38ARM,旧编译器(V5)安装
站内文章KEIL5MDK最新版(3.37)安装以及旧编译器(V5)安装_keil5 mdk-CSDN博客...
【perl】脚本编程的一些坑案例
引言 记录自己跳进的【perl】编程小坑,以己为鉴。 1、eq $str1 "12345\n"; $str2 "12345"; if ($str1 eq $str2) { print "OK" } 上述代码不会打印 OK。特别在读文件 ,匹配字符串时容易出BUG。 案例说明: 有…...
MIX OTP——使用 GenServer 进行客户端-服务器通信
在上一章中,我们使用代理来表示存储容器。在 mix 的介绍中,我们指定要命名每个存储容器,以便我们可以执行以下操作: 在上面的会话中,我们与“购物”存储容器进行了交互。 由于代理是进程,因此每个存储容器…...
2024年云安全发展趋势预测
《2024年云安全发展趋势预测》 摘要: 云计算的普及带来了新的安全挑战。本文汇总了多家云安全厂商、专业媒体和研究机构对2024年云安全发展趋势的预测,为企业组织提供了洞察云安全威胁的新视角。 云计算的灵活性和可扩展性使其成为企业关键任务负载的首…...
java.io.eofexception:ssl peer shut down incorrectly
可能是因为 1)https设置 2)超时设置 FeignConfig.java package zwf.service;import java.io.IOException; import java.io.InputStream; import java.security.KeyStore;import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSocketFactory;import org.apac…...
Unity之HTC VIVE Cosmos环境安装(适合新手小白)(一)
提示:能力有限,错误之处,还望指出,不胜感激! 文章目录 前言一、unity版本电脑配置相关关于unity版本下载建议:0.先下载unity Hub1.不要用过于旧的版本2.不要下载最新版本或者其他非长期支持版本 二、官网下…...
入门JavaWeb之 Response 验证码和重定向
Response 写验证码: package com.demo.response;import javax.imageio.ImageIO; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse…...
2024-06-26 问AI: 在大数据模型中,deep speed 是什么?
文心一言 在大数据模型中,DeepSpeed是一个由微软开发并维护的开源深度学习优化库。其主要目的是提高大规模模型训练的效率和可扩展性,帮助开发者更有效率地管理及优化大模型的训练、部署任务。以下是DeepSpeed的主要特点和功能: 提高效率和…...
mobaxterm x11 转发Ubuntu mac
目录 royal tsx —— 一款Mac平台MobaXterm平替工具 mobaxterm x11 转发Ubuntu 软件 royal tsx —— 一款Mac平台MobaXterm平替工具 Royal Apps Termius Mac mobaxterm x11 转发Ubuntu 软件 所以直接在 ssh 的时候加上 - X 就可以了 ssh -X -p xxx usernameIP 运行 xclock …...
python数据分析实训任务三(‘职业’)
import pandas as pd import matplotlib.pyplot as plt data pd.read_csv(rC:\Users\XXGC\Desktop\职业2.csv,\ encodinggb2312) # 创建 DataFrame df pd.DataFrame(data) # 分析年龄和工资的关系 plt.scatter(df[年龄], df[工资]) plt.xlabel(年龄) pl…...
vscode连接SSH
1、安装Remote-SSH插件 2、点击左下角,选择SSH 3、点击连接到主机后,添加新的SSH主机,示例ssh 用户ip 4、点击服务器,输入密码登录服务器 5、可在远程资源管理器选项卡中查看 6、可以在ssh设置中打开ssh配置文件 config中的文件…...
金融科技行业创新人才培养与引进的重要性及挑战
金融科技行业作为金融与科技的深度融合产物,正以前所未有的速度改变着传统金融业的格局。在这一变革中创新人才的培养与引进成为了行业发展的核心驱动力。然而,尽管其重要性不言而喻,但在实际操作中却面临着诸多挑战。 一、创新人才培养与引进…...
告别BRAM!手把手教你用Vivado 2020.1为MicroBlaze工程挂载DDR3内存(附完整MIG配置流程)
突破FPGA内存限制:MicroBlaze工程DDR3内存扩展实战指南 在FPGA开发中,MicroBlaze软核处理器因其灵活性和可定制性广受欢迎,但随着应用复杂度提升,内部BRAM的容量限制很快成为性能瓶颈。本文将带您深入探索如何通过Xilinx Vivado 2…...
FPGA/CPLD项目隐性成本分析与设计陷阱规避实战指南
1. 项目概述:从一则电视购物广告引发的工程思考最近整理旧资料,翻到一篇十多年前EE Times上的老博客,作者Clive Maxfield聊了个挺有意思的事儿。他吐槽电视购物广告里那句经典的“只需支付单独的处理与手续费”,并敏锐地注意到&am…...
杰理之部分芯片跑2.3G出现连接不上【篇】
部分芯片跑2.3G出现连接不上...
DAB的TPS控制闭环到底怎么调?从开环公式到稳定PI调节的实战心得
DAB的TPS控制闭环调试实战:从开环公式到稳定PI调节 调试双有源桥(DAB)变换器的三重移相(TPS)控制闭环,就像在高速公路上同时操控三辆并排行驶的赛车——任何一个小失误都可能导致系统失控。本文将带您深入理…...
NetApp FAS FC SAN存储替换实战:从HP MSA到ONTAP的平滑迁移
1. 项目背景与环境摸底 这次遇到的存储替换项目挺典型的——客户原先用的是HP MSA系列SAN存储,现在要升级到NetApp FAS2750全闪存阵列。现场环境是标准的VMware虚拟化平台,通过FC协议连接存储。说实话,第一次看到旧存储配置时我就发现几个隐患…...
从零到一:在Windows Server上快速部署OpenLDAP服务与客户端连接实战
1. 为什么选择OpenLDAP? 如果你正在管理一个中小型企业的IT基础设施,用户账号管理可能会让你头疼。每次有新员工入职,都要在每台电脑上创建账号;员工离职时又要逐个删除权限。这种重复劳动不仅效率低下,还容易出错。Op…...
别再被Linux的free命令骗了!手把手教你读懂‘可用内存’和‘实际空闲内存’的区别
别再被Linux的free命令骗了!手把手教你读懂‘可用内存’和‘实际空闲内存’的区别 刚接触Linux服务器管理时,看到free -m输出里那个触目惊心的"free"数值,我的第一反应是:"天哪,内存快用完了࿰…...
为个人AI助手项目集成多模型API实现成本与性能平衡
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 为个人AI助手项目集成多模型API实现成本与性能平衡 构建个人AI助手是许多独立开发者热衷的项目。在开发过程中,一个常见…...
ServerPackCreator终极指南:3分钟自动化创建Minecraft服务器包 [特殊字符]
ServerPackCreator终极指南:3分钟自动化创建Minecraft服务器包 🚀 【免费下载链接】ServerPackCreator Create a server pack from a Minecraft Forge, NeoForge, Fabric, LegacyFabric or Quilt modpack! 项目地址: https://gitcode.com/gh_mirrors/s…...
从 SU22 到 SU24,权限检查指示符和默认值的装载与落地治理
在 SAP 权限项目里,最容易被低估的一类数据,不是用户主记录,也不是 PFCG 角色本身,而是藏在 SU22 和 SU24 背后的权限检查指示符与授权默认值。很多团队在 DEV 系统里把角色调到绿灯,以为传到 QAS 和 PRD 以后就万事大吉,结果一到回归测试,业务顾问打开 VA01、ME21N、FD…...
