当前位置: 首页 > news >正文

Ubuntu下Git使用教程:从入门到实践

引言

在软件开发和版本控制领域,Git无疑是最为流行的工具之一。它不仅能够帮助我们高效地管理代码,还能促进团队协作,确保项目的持续集成与交付。对于使用Ubuntu操作系统的开发者而言,掌握Git的使用技巧尤为重要。本文将带您一步步走进Git的世界,从安装到基本操作,再到高级应用,让您在Ubuntu上轻松驾驭Git。

一、Git的安装

在Ubuntu上安装Git非常简单,只需通过APT包管理器即可完成。打开终端,输入以下命令:

sudo apt-get update
sudo apt-get install git

安装完成后,您可以通过输入git --version来验证安装是否成功,并查看当前Git的版本信息。

二、Git基础配置

在使用Git之前,建议进行一些基础配置,以便更好地记录您的操作历史和身份信息。执行以下命令来设置用户名和邮箱地址:

git config --global user.name "Your Name"
git config --global user.email "youremail@example.com"

这些配置信息将被保存在~/.gitconfig文件中,您可以随时通过git config --list命令查看当前配置。

三、Git基本操作
  1. 初始化仓库:在项目目录下执行git init,即可创建一个新的Git仓库。

  2. 添加文件到仓库:使用git add <file>命令将文件添加到暂存区,若要添加所有改动文件,则使用git add .

  3. 提交更改:通过git commit -m "commit message"命令将暂存区的改动提交到仓库中。

  4. 查看状态:使用git status命令可以随时查看当前仓库的状态,包括改动、暂存和未跟踪的文件信息。

  5. 查看日志:通过git log命令可以查看提交的历史记录,包括提交ID、作者、日期和提交信息。

四、Git分支管理

分支是Git中非常重要的概念,它允许我们在不影响主分支(main/master)的情况下进行新功能的开发和测试。

  1. 创建分支:使用git branch <branchname>命令创建新分支。

  2. 切换分支:通过git checkout <branchname>命令切换到指定分支。

  3. 合并分支:当新功能开发完成并测试通过后,可以使用git merge <branchname>命令将分支合并到主分支中。

  4. 删除分支:若分支不再需要,可以使用git branch -d <branchname>命令将其删除。

五、Git远程操作

在实际开发中,我们通常需要将本地仓库与远程仓库进行同步,以便团队成员之间共享代码和协作开发。

  1. 添加远程仓库:使用git remote add <remotename> <url>命令添加远程仓库。

  2. 推送代码到远程仓库:通过git push <remotename> <branchname>命令将本地分支的代码推送到远程仓库中。

  3. 从远程仓库拉取代码:使用git pull <remotename> <branchname>命令从远程仓库中拉取最新代码并合并到当前分支中。

  4. 查看远程仓库信息:通过git remote -v命令可以查看当前配置的远程仓库信息。

六、高级应用与技巧
  1. 使用.gitignore文件:在项目根目录下创建.gitignore文件,可以指定哪些文件或目录不需要被Git跟踪。

  2. 标签管理:使用git tag命令可以为特定的提交打上标签,方便后续查找和回滚。

  3. 变基与rebase:在合并分支时,若希望保持提交历史的线性,可以使用git rebase命令进行变基操作。

  4. 冲突解决:当合并分支时出现冲突时,需要手动编辑冲突文件并标记解决后的文件,然后使用git addgit commit命令完成冲突解决。

结语

本文介绍了在Ubuntu下使用Git的基本流程和高级应用技巧。通过掌握这些知识和技能,您将能够更加高效地管理代码、协作开发和解决问题。Git作为现代软件开发中不可或缺的工具之一,其强大功能和灵活性值得我们深入学习和探索。希望本文能够为您的Git之旅提供有益的指导和帮助!

相关文章:

Ubuntu下Git使用教程:从入门到实践

引言 在软件开发和版本控制领域&#xff0c;Git无疑是最为流行的工具之一。它不仅能够帮助我们高效地管理代码&#xff0c;还能促进团队协作&#xff0c;确保项目的持续集成与交付。对于使用Ubuntu操作系统的开发者而言&#xff0c;掌握Git的使用技巧尤为重要。本文将带您一步…...

【开放词汇检测】基于MMDetection的MM-Grounding-DINO实战

文章目录 摘要安装基础环境新建虚拟环境安装pytorch安装openmim、mmengine、mmcv安装 MMDetection验证安装配置OV-DINO环境 MMDetection的MM-Grounding-DINO详细介绍测试结果Zero-Shot COCO 结果与模型Zero-Shot LVIS ResultsZero-Shot ODinW&#xff08;野生环境下的目标检测&…...

PLC-Recorder 对西门子传动的采集方法

目录 一、增加西门子传动的通道 二、变量配置 2.1 语法格式 a&#xff1a;装置号 b&#xff1a;参数号 c&#xff1a;参数下标 2.2 配置及连接测试情况 三、正式采集 四、小结 PLC-Recorder V3.4.0版本增加了西门子传动参数采集的功能&#xff08;增加了传动的设备类型&a…...

【网络通信基础与实践第三讲】传输层协议概述包括UDP协议和TCP协议

一、进程间的通信 通信的两端应当是两个主机中的应用进程&#xff0c;也就是说&#xff0c;端到端的通信是应用进程之间的通信 运输层有一个很重要的功能就是复用和分用&#xff0c;复用是指在发送方不同的应用进程都可以使用同一个运输层协议传送数据&#xff0c;分用是指接…...

centos更改静态ip

点击网络和internet设置 点击更改适配器 、点击属性...

YOLOv5/v8 + 双目相机测距

yolov5/v8双目相机测距的代码&#xff0c;需要相机标定 可以训练自己的模型并检测测距&#xff0c;都是python代码 已多次实验&#xff0c;代码无报错。 非常适合做类似的双目课题&#xff01; 相机用的是汇博视捷的双目相机&#xff0c;具体型号见下图。 用的yolov5是6.1版本的…...

双三次插值及MATLAB实现

一、双三次插值的概念 双三次插值&#xff08;Bicubic interpolation&#xff09;&#xff0c;又叫双立方插值。在数值分析这个数学分支中&#xff0c;双三次插值是二维空间中最常用的插值方法。在这种方法中&#xff0c;函数f在点 (x0 ,y0) 的值不仅考虑其直接邻接点对其的影响…...

Kubernetes 持续集成与交付(CI/CD)

Kubernetes 持续集成与交付&#xff08;CI/CD&#xff09;详解 Kubernetes 是目前主流的容器编排平台&#xff0c;而在 DevOps 的实践中&#xff0c;持续集成与持续交付&#xff08;CI/CD&#xff09;是自动化软件开发与运维的核心环节。Kubernetes 与 CI/CD 的结合&#xff0…...

【Rust练习】14.流程控制

练习题来自&#xff1a;https://practice-zh.course.rs/flow-control.html 1 // 填空 fn main() {let n 5;if n < 0 {println!("{} is negative", n);} __ n > 0 {println!("{} is positive", n);} __ {println!("{} is zero", n);} } …...

React-Hooks-Form 集成 Zod 校验库

React-Hooks-Form 集成 Zod 校验库 首先需要安装 react hooks form 官方提交的解析器 npm install hookform/resolvers再安装校验库 npm install zod它不仅支持 Zod 校验库同时还支持目前各种主流的校验库比如&#xff1a;Yup、Zod、Joi、Ajv、Vest、Custom 具体查看官方文…...

kettle从入门到精通 第八十五课 ETL之kettle kettle中javascript步骤调用外部javascript/js文件

场景&#xff1a;交流学习群里面有小伙伴咨询kettle中的javascript代码步骤如何调用外部js文件中的函数&#xff0c;觉得有点意思的&#xff0c;于是就抽时间整理了一下。 1、外部js文件为test.js&#xff0c;代码如下&#xff1a; function test(param){return "接收到了…...

比传统机器学习更先进的深度学习神经网络的二分类建模全流程教程

比传统机器学习更先进的深度学习神经网络的二分类建模全流程分析教程 深度学习介绍和与传统机器学习的区别 深度学习&#xff08;Deep Learning&#xff09;是一种机器学习的分支&#xff0c;基于多层神经网络模型&#xff0c;能够自动从大量数据中学习特征并进行预测。深度学…...

TeamTalk梳理概括

文章目录 即时通讯重点概括展开聊聊单聊消息流转流程展开聊聊群聊消息流转流程群成员管理数据库MySQL连接池设计redis连接池设计文件传输原理实时性并发能力 db_proxy_server reactor响应处理流程单聊消息消息如何封装&#xff1f;如何保证对端完整解析一帧消息&#xff1f;协议…...

构建“零工市场小程序”,服务灵活就业“大民生”

如今&#xff0c;灵活就业已成为现代劳动力市场的重要组成部分。然而&#xff0c;这一就业形态也面临着信息不对称、匹配效率低下等一系列挑战。为有效解决这些问题&#xff0c;构建一个高效、便捷的“零工市场小程序”显得尤为重要。 二、零工市场现状与挑战 市场规模与增长趋…...

【组件】前端js HEIC/HEIF 转换为JPEG、PNG或GIF格式 苹果格式

【组件】前端js HEIC/HEIF 转换为JPEG、PNG或GIF格式 Heic2any: Client-side conversion of HEIC/HEIF image files to JPEG,PNG, or GIF in the browser.https://alexcorvi.github.io/heic2any/#demo GitHub - alexcorvi/heic2any: Converting HEIF/HEIF image formats to PN…...

Vue3中slot插槽的几种使用实践

【1】默认插槽 父组件 <Category title"今日美食城市"><img :src"imgUrl" alt""> </Category>子组件 <div class"category"><h2>{{title}}</h2><slot>默认内容</slot> </div&g…...

SSH工具 MobaXterm的使用与快捷配置

软件下载/安装与链接服务器/本地虚拟机 文章目录 软件下载/安装与链接服务器/本地虚拟机软件下载软件安装使用软件链接非本地机器并设置用户密码我不想有确定密码的弹窗 其余便捷配置配置右键粘贴SSH链接设置 软件下载 如果你访问不了这个网址&#xff0c;可以评论区找博主或者…...

git 远程分支同步本地落后的有冲突的分支

如果你的本地分支已经修改了很多代码&#xff0c;但同时也已经落后于远程分支。这个时候你需要在主分支上拉最新的代码&#xff0c;然后切换到你的分支。 如主分支是 main &#xff0c;从分支是xing。 首先切换到子分支 $ git checkout xing 然后请求merge主分支main的代码 …...

如何基于Java解析国密数字证书

一、说明 随着信息安全的重要性日益凸显&#xff0c;数字证书在各种安全通信场景中扮演着至关重要的角色。国密算法&#xff0c;作为我国自主研发的加密算法标准&#xff0c;其应用也愈发广泛。然而&#xff0c;在Java环境中解析使用国密算法的数字证书时&#xff0c;我们可能…...

java实现系统文件管理

java实现系统文件管理 环境&#xff1a;jdk17springbootVueElementUI 背景&#xff1a;公司所做的项目需要别的系统向我们服务器上传文件&#xff0c;当我们需要查看这些文件什么时候上传的、文件数据是怎样的&#xff0c;只能去机房&#xff0c;排查问题效率较低&#xff0c;…...

php7+mysql5.6单用户中医处方管理系统V1.0

php7mysql5.6中医处方管理系统说明文档 一、系统简介 ----------- 本系统是一款专为中医诊所设计的处方管理系统&#xff0c;基于PHPMySQL开发&#xff0c;不依赖第三方框架&#xff0c;采用原生HTML5CSS3AJAX技术&#xff0c;适配手机和电脑访问。 系统支持药品管理、处方开…...

审批流程管理系统开发记录:layui前端交互的实践

一、需求拆解与技术选型 本次开发围绕企业审批流程管理场景,需实现以下核心功能: 前端申请表单与流程进度可视化底部滑动审批弹窗交互多版本MySQL数据库支持流程数据的增删改查与状态管理技术栈选择: 前端采用LayUI框架,利用其时间线组件(lay-timeline)实现流程进度展示…...

el-table 树形数据,子行数据可以异步加载

1、 <el-tableborder:header-cell-style"tableStyle?.headerCellStyle"ref"tableRef":data"tableData"row-key"id":default-expand-all"false" // 默认不展开所有树形节点:tree-props"{ children: children, hasC…...

【使用JAVA调用deepseek】实现自能回复

在Spring Boot系统中接入DeepSeek服务&#xff0c;并将其提供给用户使用&#xff0c;通常需要以下步骤&#xff1a; 一、准备工作 &#xff08;1&#xff09;注册DeepSeek开发者账号 访问DeepSeek官网&#xff0c;注册并创建应用&#xff0c;获取API Key。 API文档&#xff1…...

重温经典算法——希尔排序

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl 基本原理 希尔排序是插入排序的改进版&#xff0c;通过按增量分组并逐步缩小增量实现排序。时间复杂度取决于增量序列&#xff0c;平均约为 O(n log n) 到 O(n^(3/2))&…...

JavaWeb简介

目录 1.1 JavaWeb 简介​​ ​​1.2 JavaWeb 技术栈​​ ​​1.3 JavaWeb 交互模式​​ ​​1.4 JavaWeb 的 C/S 和 B/S 模式​​ ​​C/S 模式 (Client-Server / 客户端-服务器模式)​​ ​​B/S 模式 (Browser-Server / 浏览器-服务器模式)​​ ​​1.5 JavaWeb 实现前…...

web3-区块链的交互性以及编程的角度看待智能合约

web3-区块链的交互性以及编程的角度看待智能合约 跨链交互性 交互性 用户在某一区块链生态上拥有的资产和储备 ​ 目标&#xff1a;使用户能够把资产和储备移动到另一个区块链生态上 可组合性 使在某一区块链的DAPP能调用另一个区块链上的DAPP 如果全世界都在用以太坊就…...

鸿蒙版Taro 搭建开发环境

鸿蒙版Taro 搭建开发环境 一、配置鸿蒙环境 下载安装 DevEco 建议使用最新版本的 IDE&#xff0c;当前为 5.0.5Release 版本。 二、创建鸿蒙项目 打开 DevEco&#xff0c;点击右上角的 Create Project&#xff0c;在 Application 处选择 Empty Ability&#xff0c;点击 Ne…...

6个月Python学习计划 Day 14 - 异常处理基础( 补充学习)

第二周 Day 8 - Python 函数基础 Day 9 - 函数进阶用法 Day 10 - 模块与标准库入门 Day 11 - 列表推导式、内置函数进阶、模块封装实战 Day 12 - 字符串处理 & 文件路径操作 Day 13 - 文件操作基础 &#x1f3af; 今日目标 理解异常的概念和常见异常类型掌握 try-except …...

使用jstack排查CPU飙升的问题记录

最近&#xff0c;看到短视频传播了一个使用jstack来协助排查CPU飙升的案例。我也是比较感兴趣&#xff0c;参考了视频博主的流程&#xff0c;自己做了下对应案例的实战演练&#xff0c;在此&#xff0c;想做一下&#xff0c;针对相关问题模拟与排查演练的实战过程记录。 案例中…...