第三关:Git 基础知识

news2024/11/24 13:06:06

一、Git是什么

Git是一种开源的分布式版本控制系统,广泛应用于软件开发领域,尤其是在协同工作环境中。它为程序员提供了一套必备的工具,使得团队成员能够有效地管理和跟踪代码的历史变更。下面是 Git 的主要功能和作用的规范描述:

官网:https://git-scm.com/

官方文档:Git - Book

Git 基础:Git 基础知识

Git中的一些基本概念

工作区、暂存区和Git仓库区

  • 工作区(Working Directory): 当我们在本地创建一个 Git 项目,或者从 GitHub 上 clone 代码到本地后,项目所在的这个目录就是“工作区”。这里是我们对项目文件进行编辑和使用的地方。

  • 暂存区(Staging Area): 暂存区是 Git 中独有的一个概念,位于 .git 目录中的一个索引文件,记录了下一次提交时将要存入仓库区的文件列表信息。使用 git add 指令可以将工作区的改动放入暂存区。

  • 仓库区 / 本地仓库(Repository): 在项目目录中,.git 隐藏目录不属于工作区,而是 Git 的版本仓库。这个仓库区包含了所有历史版本的完整信息,是 Git 项目的“本体”。

分支 分支是 Git 的一大特性,支持轻量级的分支创建和切换。Git 鼓励频繁使用分支和合并,使得并行开发和错误修正更为高效。

主要功能

  • 代码历史记录跟踪

    Git 记录每一次代码提交,允许用户查看项目的历史版本和变更记录,从而理解每个阶段的开发细节。

  • 团队协作

    支持多人同时对同一项目工作,提供了合并、分支和版本控制的功能,以确保多人协作的效率和代码的整合性。

  • 变更审查

    允许开发者查看代码变更的具体内容,了解谁在何时做了哪些修改,这对于代码审查和质量控制至关重要。

  • 实现机制

        

二、安装Git

2.1Windows系统

1.下载并安装适合您 Windows 版本的安装程序:下载地址
2.按照安装向导完成安装。
3.打开终端(win+r→cmd),输入指令 git --version 检查是否安装成功。

2.2Linux 系统

1.通过包管理器安装Git:

sudo apt update
sudo apt install git

2.输入指令 git --version检查安装版本

GitHub:

  • 是全球最大的代码托管平台之一,拥有丰富的开源项目和活跃的开发者社区。它提供了版本控制、项目管理、协作开发等功能,并支持多种编程语言。

GitLab:

  • 一个自托管或基于云的平台,提供了完整的 DevOps 工具链,包括代码托管、持续集成/持续部署(CI/CD)、问题跟踪等。

Gitee:

  • 国内的代码托管平台,提供了代码托管、项目管理、协作开发等功能,对国内开发者来说,访问速度可能更快,也更符合国内的使用习惯。

Github 需要魔法,可以选择自行选择使用。

3.常用的Git操作

基本指令

进阶指令

每个指令都有其特定的用途和场景,详细的使用方法和参数可以通过命令行的帮助文档(git command -h,例如git pull -h)

4.食用小tips

全局设置vs本地设置

全局设置:这些设置影响你在该系统上所有没有明确制定其他用户名和电子邮件的Git仓库。这是设置默认用户名和电子邮件的好方法。

本地设置:这些设置仅适用于特定的Git仓库。这对于你需要在不同项目中使用不同身份时很有用,例如区分个人和工作项目。

如何配置

1.全局设置用户信息 打开终端或命令提示符,并输入以下命令来设置全局用户名和电子邮件地址:

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

这里的 "Your Name" 和 "your.email@example.com" 应替换为你自己的姓名和电子邮件。

2.本地设置用户信息 确保你当前处于你想要配置的Git仓库的目录中。然后,输入以下命令来仅为该仓库设置用户名和电子邮件地址:

git config --local user.name "Your Name"
git config --local user.email "your.email@example.com"

同样,替换 "Your Name" 和 "your.email@example.com" 为该特定项目中使用的姓名和电子邮件。

验证设置

在设置完用户信息后,你可能想要沿着这些设置以确保它们被正确应用。

查看全局配置:

git config --global --list

查看仓库配置:

git config --local --list

查看特定配置项:

git config user.name
git config user.email
Git四部曲

在Git的日常使用中,下面四步曲是常用的流程,尤其实在团队协作环境中。

添(Add)
  • 命令git add <文件名> 或 git add .
  • 作用:将修改过的文件添加到本地暂存区(Staging Area)。这一步是准备阶段,你可以选择性地添加文件,决定哪些修改应该被包括在即将进行的提交中。
提(Commit)
  • 命令git commit -m '描述信息'
  • 作用:将暂存区中的更改提交到本地仓库。这一步是将你的更改正式记录下来,每次提交都应附带一个清晰的描述信息,说明这次提交的目的或所解决的问题。
拉(Pull)
  • 命令git pull
  • 作用:从远程仓库拉取最新的内容到本地仓库,并自动尝试合并到当前分支。这一步是同步的重要环节,确保你的工作基于最新的项目状态进行。在多人协作中,定期拉取可以避免将来的合并冲突。
推(Push)
  • 命令git push
  • 作用:将本地仓库的更改推送到远程仓库。这一步是共享你的工作成果,让团队成员看到你的贡献。

帮助团队成员有效地管理和同步代码,避免工作冲突,确保项目的顺利进行。正确地使用这些命令可以极大地提高开发效率和协作质量。

5.常用插件

  • GitLens: 在代码行上显示 Git 提交信息。
  • Git Graph: 类似于 SourceTree 的可视化版本控制插件。
  • Git History: Git 日志查看器。

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

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

相关文章

Java面试题——第二篇(设计模式)

1. 工厂方法模式 1.1 普通工厂模式 建立一个工厂类&#xff0c;对实现了同一接口的一些类进行实例的创建。 1.2 抽象工厂模式 抽象多个工厂类&#xff0c;提高工厂的可扩展性 定义抽象工厂接口 public interface DeviceFactory { Phone createPhone(); Computer creat…

【工具插件类教学】vHierarchy 2工具编辑器扩展使用

目录 一、下载导入 二、使用介绍 1.便捷小工具 a.图标和颜色Icons and colors b.对象组件缩略图Component minimap c.层级线展示Hierarchy lines d.极简模式Minimal mode e.斑马条纹图案Zebra striping f.激活切换Activation toggle 2、快捷键 一、下载导入 资源官方…

Redis系列之Redis Sentinel

概述 Redis主从集群&#xff0c;一主多从模式&#xff0c;包括一个Master节点和多个Slave节点。Master负责数据的读写&#xff0c;Slave节点负责数据的查询。Master上收到的数据变更&#xff0c;会同步到Slave节点上实现数据的同步。通过这种架构实现可以Redis的读写分离&…

U盘文件或目录损坏无法读取?专业恢复策略全解析

U盘困境&#xff1a;文件目录的隐形危机 在日常的数字生活中&#xff0c;U盘作为便捷的数据存储与传输工具&#xff0c;扮演着至关重要的角色。然而&#xff0c;当U盘中的文件或目录突然遭遇损坏&#xff0c;导致无法被正常读取时&#xff0c;这无疑给用户带来了极大的困扰。这…

达梦数据库的系统视图v$cachers

达梦数据库的系统视图v$cachers 达梦数据库的系统视图V$CACHERS的作用是显示缓存中的项信息&#xff0c;在 ini 参数 USE_PLN_POOL !0 时才统计。这个视图帮助数据库管理员监控和分析缓存的使用情况&#xff0c;优化数据库性能。通过查询V$CACHERS视图&#xff0c;可以获取缓存…

DeferredResult 是如何实现异步处理请求的

最近遇到了一个问题&#xff0c;我们的一个接口需要去轮询另一个第三方接口&#xff0c;导致这个接口占用了太多工作线程&#xff0c;这些工作线程长时间 running&#xff0c;我们需要解决这个问题。 于是&#xff0c;我们的方案是&#xff1a;用 DeferredResult 实现接口异步。…

如何用 ChatGPT 提升学术写作:15 个高效提示

在本文&#xff0c;我们详细探讨了如何利用 ChatGPT 提升学术写作的各个方面。我们帮助学术作者通过生成创意点子、构建论证结构、克服写作障碍以及格式化引用&#xff0c;从而显著提升其学术论文的质量。这 15 条提示不仅可以单独使用&#xff0c;还可作为学习的良好范例。 本…

文件解析漏洞复现

一、IIS 6.X 1.在网站目录创建文件夹名为xxx.asp/xxx.asa 文件夹&#xff0c;里面的任意文件都会被当作asp文件执行 创建1.asp 访问 2.ooo.asp.jpg会被当做asp文件执行 创建一个ooo.asp;.jpg 访问 二、IIS 7.X 上传1.jpg文件在网址后/.php可以成功执行 写一个1.jpg文件内容…

CTFHubret2shellcode-入土为安的第十三天

checksec pwn 没有开保护 并且是64位的 放入IDa64 shiftf12 查看字符串 发现没有shell f5查看主函数 read函数&#xff0c;点进去buf 0x010,0x08. buf的地址 因为我们要把buf填充满 然后再让栈进入shellcode的地址 然后再执行shellcode recvuntil 函数会一直读取数据&#…

Vue3 + JS项目配置ESLint Pretter

前言 如果在开发大型项目 同时为多人协作开发 那么 ESLint 在项目中极为重要 在使用 ESLint 的同时 也需要使用 Pretter插件 统一对代码进行格式化 二者相辅相成 缺一不可 1. 安装 VsCode 插件 在 VsCode 插件市场搜索安装 ESLint 和 Pretter 2. 安装依赖 这里直接在 pac…

SOLIDWORKS教育版支持多种快捷键和自定义工具

在工程设计与教育的广阔领域中&#xff0c;SOLIDWORKS作为一款强大的三维CAD设计软件&#xff0c;凭借其直观的操作界面、丰富的功能集以及对学生及教育机构的特别支持&#xff0c;赢得了广泛的认可与好评。其中&#xff0c;SOLIDWORKS教育版不仅继承了专业版的核心功能&#x…

Android Listview notifyDataSetChanged() 不起作用

private ArrayList<Map<String, String>> data new ArrayList<Map<String, String>>(); private ArrayList<Map<String, String>> delivered_data new ArrayList<Map<String, String>>(); 如果直接将arraylist 的数据直接…

人工智能深度学习系列—深度学习损失函数中的Focal Loss解析

文章目录 1. 背景介绍2. Loss计算公式3. 使用场景4. 代码样例5. 总结 1. 背景介绍 在深度学习的目标检测任务中&#xff0c;类别不平衡问题一直是提升模型性能的拦路虎。Focal Loss损失函数应运而生&#xff0c;专为解决这一难题设计。本文将深入探讨Focal Loss的背景、计算方…

面向对象之设计模式,四种内部类,类关系

面向对象 1. 类关系 继承 使用extends表示,类和类单继承,接口和接口多继承,多个逗号隔开 又叫泛化关系 实现 类和接口是多实现关系,多个逗号隔开,通过关键字 implements表示 依赖 一个类中的局部变量 ,保存了另一个类对象 关联 又叫强依赖,一个类中的成员变量,是另一个类对象…

用Babylon.js 滑动屏幕画图形,签字等

介绍 在上篇文章中我们已经了解到了该游戏引擎的基本搭建过程。比如灯光,摄像头,场景、事件监听等。这里我就不做多介绍。运用以上知识点。我们此时做一个小游戏画图。 效果图 源代码 1.先监听事件是否碰撞到了画板 2.然后判断动作,手指按住屏幕,松开屏幕,滑动屏幕。 …

Linux---进程(4)---进程优先级调度切换

目录 进程优先级 进程切换 前期知识补充 进程切换 进程调度 进程优先级 权限是为了解决能不能享受资源的问题&#xff0c;优先级则是为了解决享受资源的顺序的问题。 进程要访问某种资源&#xff0c;就需要用排队的方式&#xff0c;确定享受资源的先后顺序。因为资源是少…

谷粒商城实战笔记-105~107-全文检索-ElasticSearch-入门

文章目录 一&#xff0c;105-全文检索-ElasticSearch-入门-_cat二&#xff0c;106-全文检索-ElasticSearch-入门-put&post新增数据三&#xff0c;107-全文检索-ElasticSearch-入门-get查询数据&乐观锁字段1&#xff0c;过时的乐观锁-version2&#xff0c;Elasticsearch…

深入源码P3C-PMD:启动源码(2)

下面我们开始从启动探寻 PMD 的源码设计。 pmd 的启动类为 PmdCli&#xff0c;作为命令行的启动器&#xff0c; 其依赖 picocli 作为控制台命令框架。 picocli 官网&#xff1a;https://picocli.info/ Command(name "checksum", mixinStandardHelpOptions true, v…

Golang | Leetcode Golang题解之第316题去除重复字母

题目&#xff1a; 题解&#xff1a; func removeDuplicateLetters(s string) string {left : [26]int{}for _, ch : range s {left[ch-a]}stack : []byte{}inStack : [26]bool{}for i : range s {ch : s[i]if !inStack[ch-a] {for len(stack) > 0 && ch < stack…

谷歌外链的重要性及获取方法!

对于做谷歌seo的人来说&#xff0c;谷歌外链的重要性不言而喻&#xff0c;这是谷歌评估一个网站的重要指标&#xff0c;它们像是网络上的推荐信&#xff0c;可以显著提高你网站的可见度和信誉&#xff0c;这样有利于关键词获取到更好的排名&#xff0c;有作用的外链能显著提升网…