[Git]一文速通

概述

Git是一个分布式版本控制工具,主要用于管理开发过程中的源代码文件(Java类、xml文件、html页面等, )在软件开发过程中被广泛使用

Git的作用

  1. 代码回溯
  2. 版本切换
  3. 多人协作
  4. 远程备份

通过Git 仓库来存储和管理代码 文件,Git 仓库分为两种:

  1. 本地仓库: 开发人员自己电脑上的 Git 仓库
  2. 远程仓库: 远程服务器上的 Git 仓库

使用流程

commit: 提交, 将本地文件和版本信息保存到本地仓库

push: 推送, 将本地仓库文件和版本信息上传到远程仓库

pull: 拉取, 将远程仓库文件和版本信息下载到本地仓库

下载安装

  1. 下载地址: https://git-scm.com/download
  2. 下载完成后得到安装文件, 进行软件安装

安装完成后在任意目录点击鼠标右键,如果能看到如下菜单则表示安装完成

  1. Git GUlHere: 打开Git 图形界面
  2. Git Bash Here: 打开Git 命令行

代码托管

代码托管平台

第三方的代码托管平台可以作为Git远程仓库使用, 其中比较常用的有GitHub、码云、GitLab等

  1. gitHub:(地址:https://github.com/),是一个面向开源及私有软件项目的托管平台,因为只支持Git 作为唯一的版本库格式进行托管,故名gitHub
  2. 码云(地址: https://gitee.com/),是国内的一个代码托管平台,由于服务器在国内,所以相比于GitHub,码
  3. 云速度会更快GitLab (地址: https://about.gitlab.com/),是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务
  4. BitBucket(地址:https://bitbucket.org/), 是一家源代码托管网站,采用Mercurial和Git作为分布式版本控制系统,同时提供商业计划和免费账户

码云

使用码云的操作流程如下

  1. 注册码云账号

  1. 登录码云

  1. 创建远程仓库

  1. 邀请其他用户成为仓库成员

常用命令

git全局设置

当安装Git后首先要做的事情是设置用户名称和email地址。这是非常重要的,因为每次Git提交都会使用该用户信息。

  1. 在Git 命令行中执行下面命令:
  2. 设置用户信息
  • git config --global user.name "itcast"
  • git config --global user.email "hello@itcast.cn'
  1. 查看配置信息
  • git config --list
  1. 上面设置的user.name和user.email并不是我们在注册码云账号时使用的用户名和邮箱,此处可以任意设置

获取git仓库

要使用Git对我们的代码进行版本控制,首先需要获得Git仓库,获取Git仓库通常有两种方式

方式1: 在本地初始化一个Git仓库(不常用)

  1. 在任意目录下创建一个空目录(例如repo1)作为我们的本地Git仓库
  2. 进入这个目录中,点击右键打开Git bash窗口
  3. 执行命令git init
  4. 如果在当前目录中看到.git文件夹(此文件夹为隐藏文件夹)则说明Git仓库创建成功

方式2: 从远程仓库克隆(常用)

  1. 可以通过Git提供的命令从远程仓库进行克隆,将远程仓库克隆到本地
  2. 命令形式: git clone 【远程Git仓库地址】

基本概念

版本库: 前面看到的.git隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等

工作区:包含.git文件夹的目录就是工作区,也称为工作目录,主要用于存放开发的代码

暂存区:.git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存修改文件的地方

文件状态

Git工作区中的文件存在两种状态:

  1. untracked 未跟踪(未被纳入版本控制)
  2. tracked 已跟踪(被纳入版本控制)
  • Unmodified 未修改状态
  • Modified 已修改状态
  • Staged 已暂存状态
  1. 注意:这些文件的状态会随着我们执行Git的命令发生变化

操作本地仓库

本地仓库的常用命令

查看文件状态: git status

将文件的修改加入暂存区: git add

将暂存区的文件取消暂存或者是切换到指定版本: git reset

将暂存区的文件修改提交到版本库: git commit

查看日志: git log

操作远程仓库

查看远程仓库: git remote

  1. 如果想查看已经配置的远程仓库服务器,可以运行 git remote 命令,它会列出每一个远程服务器的简写。
  2. 如果已经克隆了远程仓库,那么至少应该能看到 origin ,这是 Git 克隆的仓库服务器的默认名字。
  3. git remote -v 可以查看详细的远程服务器的信息, 包括简称和具体地址

添加远程仓库: git remote add

  1. 添加远程仓库: 运行 git remote add <shortname><url> 命令给当前Git文件添加一个远程 Git 仓库
  2. shortname 用来指定仓库的简写, url 用来指定仓库的地址
  3. 仓库的简写一般命名为 origin

从远程仓库克隆: git clone

  1. 如果你想获得一份已经存在了的 Git 远程仓库的拷贝,这时就要用到 git clone 命令。
  2. Git 克隆的是该 Git 仓库服务器上的几乎所有数据(包括日志信息、历史记录等),而不仅仅是复制工作所需要的文件。
  3. 克隆仓库的命令格式是: git clone [url]

推送到远程仓库: git push

  1. 将本地仓库内容推送到远程仓库,可以使用命令:git push [remote-name][branch-name]
  2. remote-name 用来指定远程仓库的简称, branch-name 用来指定推送到哪个分支
  3. 初次使用git push命令将本地文件推送至码云远程仓库时,需要进行身份认证,认证通过才可以推送

  1. 必须是项目的成员才可以向远程仓库中推送文件

从远程仓库拉取: git pull

  1. git pull 命令的作用是从远程仓库获取最新版本并合并到本地仓库
  2. 命令格式: git pull [short-name][branch-name]
  3. short-name是仓库简名 branch-name是仓库分支
  4. 如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报错(fatal: refusing to merge unrelated histories), 中文意为"拒绝合并不相关的历史", 因为本地仓库和远程仓库都有自己的文件历史, 所以拉取失败
  5. 解决此问题可以在个git pull命令后加入参数 --alow-unrelated-histories
  6. 意思是允许合并不相关的文件历史, 命令执行后会出现对话框, 先按下键盘 i 键进入插入模式, 随便输入一些说明信息, 然后按下键盘 esc 键退出插入模式, 然后输入 :wq 命令(保存文件)后按下回车键执行, 就可以了

分支操作

分支是Git 使用过程中非常重要的概念。使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线, 同一个仓库可以有多个分支,各个分支相互独立,互不干扰

通过git init 命令创建本地仓库时默认会创建一个master分支。

查看分支

  1. 列出所有本地分支: git branch
  2. 列出所有远程分支: git branch -r
  3. 列出所有本地分支和远程分支: git branch -a
  4. HEAD并不是分支 ,而是指针, 指向当前所在分支

创建分支

  1. 创建分支: git branch [name]

切换分支

  1. 切换分支: git checkout [name]

推送至远程仓库分支

  1. 推送至远程仓库分支: git push [shortName] [name]
  2. shortName是仓库简称, name是分支名称

合并分支

  1. 合并分支: git merge [name]
  2. 合并分支准确来说是把其他分支合并到当前分支

分支冲突: 当不同分支对同一个文件进行了操作, 合并分支时就会出现问题, 需要说动处理冲突文件

  1. 合并过程中提示文件出现了冲突

  1. .打开冲突文件, 手动处理出现冲突的文件

  1. 然后把处理完的文件保存到暂存区, 告诉Git冲突已经处理了

  1. 如果提交到远程仓库时报错, 可能是因为我们提交的文件并不完整, 只是提交了冲突的文件
  2. 所以在提交时添加一个 -i 参数就可以了, 表示忽略

标签操作

Git 中的标签,指的是某个分支某个特定时间点的状态。通过标签,可以很方便的切换到标记时的状态,比较有代表性的是人们会使用这个功能来标记发布结点(v1.0、v1.2等)。下面是mybatis-plus的标签:

  1. 分支是动态概念, 分支里面的文件内容可以随时变动
  2. 标签是静态概念, 便签一旦生成, 所包含的文件内容就不会变了, 一般用来记录软件的版本

列出已有的标签: git tag

创建标签: git tag [name]

将标签推送至远程仓库: git push [shortName] [name]

  1. shortName表示仓库的简称, name表示标签的名称

检出标签: git checkout -b [branch] [name]

  1. 检出标签时需要新建一个分支来指向某个标签
  2. branch表示自动创建的分支的名字, name表示标签的名称

IDEA

在IDEA中配置Git

在IDEA中使用Git,本质上还是使用的本地安装的Git软件,所以需要在IDEA中配置Git。

  1. 点击Test显示Git版本, 证明路径选择正确
  2. 选择软件路径是要选中exe文件

获取Git仓库

在IDEA中使用Git获取仓库有两种方式: 本地初始化仓库, 从远程仓库克隆

Git忽略文件

有些文件不需要Git进行管理的, 就可以通过忽略文件指定不需要管理的文件

  1. 忽略文件可以自己创建, 也可以在创建远程仓库时自动生成

本地仓库操作

将文件加入暂存区

  1. 文件改变时点击add按钮加入暂存区

  1. 右键文件,通过Git菜单的命令进行添加

将暂存区的文件提交到版本库

  1. 通过右键文件或者文件夹, 使用Git菜单命令进行文件提交

  1. 通过快捷提交按钮进行文件提交

查看日志

远程仓库操作

查看远程仓库

添加和删除远程仓库

推送至远程仓库

  1. 通过右键项目名, 使用Git菜单推送代码

  1. 使用快捷按钮推送代码

从远程仓库拉取

  1. 通过项目右键菜品, 使用Git菜单的形式拉取代码

  1. 使用快捷按钮更新代码

分支操作

查看分支

  1. 通过菜单查看分支

  1. 通过IDEA右下角的快捷方式查看分支

创建分支

切换分支

将分支推送至远程仓库

合并分支

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

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

相关文章

循序渐进丨在 MogDB 数据库中实现 Oracle ASH能力

我们都知道&#xff0c;当 Oracle 数据库出现性能故障后&#xff0c;一般会在线上实时诊断数据库性能问题&#xff0c;特别是资源突然打高的场景&#xff0c;这个时候用到ASH的数据&#xff0c;就能很大程度上准确定位问题所在。 Oracle ASH 在 Oracle 数据库中&#xff0c;实…

基于微博评论的自然语言处理情感分析

目录 一、项目概述 二、需要解决的问题 三、数据预处理 1、词汇表构建&#xff08;vocab_creat.py&#xff09; 2、数据集加载&#xff08;load_dataset.py&#xff09; 四、模型构建&#xff08;TextRNN.py&#xff09; 1、嵌入层&#xff08;Embedding Layer&#xff…

【学术会议论文投稿】ECMAScript标准:塑造现代Web开发的基石

https://www.ais.cn/attendees/index/MVNV3U 更多学术会议论文投稿请看&#xff1a;https://ais.cn/u/nuyAF3 目录 引言 ECMAScript的历史背景与版本更新 ECMAScript的核心特性 1. 变量和数据类型 2. 变量声明 3. 运算符 4. 控制流语句 5. 函数 6. 错误处理 7. 模板…

github学生认证(Github Copilot)

今天想配置一下Github Copilot&#xff0c;认证学生可以免费使用一年&#xff0c;认证过程中因为各种原因折腾了好久&#xff0c;记录一下解决方法供大家参考。 p.s.本文章只针对Github学生认证部分遇到的问题及解决方法&#xff0c;不包括配置copilot的全部流程~ 1、准备工作…

构建后端为etcd的CoreDNS的容器集群(六)、编写自动维护域名记录的代码脚本

本文为系列测试文章&#xff0c;拟基于自签名证书认证的etcd容器来构建coredns域名解析系统。 一、前置文章 构建后端为etcd的CoreDNS的容器集群&#xff08;一&#xff09;、生成自签名证书 构建后端为etcd的CoreDNS的容器集群&#xff08;二&#xff09;、下载最新的etcd容…

Github 2024-10-19 Rust开源项目日报 Top10

根据Github Trendings的统计,今日(2024-10-19统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Rust项目10Python项目2Dart项目1TypeScript项目1Vue项目1CUE项目1RustDesk: 用Rust编写的开源远程桌面软件 创建周期:1218 天开发语言:Rust, …

敏捷Scrum项目管理方法,如何做好敏捷项目管理❓

在当今快速变化的商业环境中&#xff0c;项目管理方法的选择对于项目的成功至关重要。敏捷Scrum作为一种轻量级、迭代式的项目管理方法&#xff0c;因其灵活性和高效性而备受推崇。作为项目经理&#xff0c;掌握敏捷Scrum项目管理方法不仅有助于提升项目交付效率&#xff0c;还…

2024年软件设计师中级(软考中级)详细笔记【7】面向对象技术(上)(分值10+)

目录 前言第7章 面向对象技术 &#xff08;上&#xff09;7.1 面向对象基础(3-4分&#xff09;7.1.1 面向对象的基本概念7.1.2 面向对象分析&#xff08;熟记&#xff09;7.1.3 面向对象设计7.1.4 面向对象程序设计7.1.5 面向对象测试 7.2 UML(3~4分)7.2.1 事务7.2.2 关系7.2.2…

Qt 支持打包成安卓

1. 打开维护Qt&#xff0c;双击MaintenanceTool.exe 2.登陆进去,默认是添加或移除组件&#xff0c;点击下一步&#xff0c; 勾选Android, 点击下一步 3.更新安装中 4.进度100%&#xff0c;完成安装&#xff0c;重启。 5.打开 Qt Creator&#xff0c;编辑-》Preferences... 6.进…

Windows下配置Nginx和PHP

之前在Windows开发php项目用的是phpstudy&#xff0c;好用的很。但是phpstudy好久没有更新了&#xff0c;感觉PHP像没有人再用了一样。但是PHP拿来开发小系统&#xff0c;还是很高效的&#xff0c;今天记录如何在Windows环境下配置Nginx和PHP。 1. 配置nginx Nginx软件下载解压…

【Python】selenium遇到“InvalidArgumentException”的解决方法

在使用try……except 的时候捕获到这个错误&#xff1a; InvalidArgumentException: invalid argument (Session info: chrome112.0.5614.0) 这个错误代表的是&#xff0c;当传入的参数不符合期望时&#xff0c;就会抛出这个异常&#xff1a; InvalidArgumentException: invali…

【C#】使用vue3的axios发起get和post请求.net framework部署的API显示跨域

欢迎来到《小5讲堂》 这是《C#》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解。 温馨提示&#xff1a;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01; 目录 前言跨域提示解决方案现状跨域疑问跨域概念相关文章 前言 最近在对接…

React高级Hook

useReducer useReducer 是 React 提供的一个 Hook&#xff0c;用于在函数组件中使用 reducer 函数来管理组件的 state。它类似于 Redux 中的 reducer&#xff0c;但仅用于组件内部的状态管理。useReducer 可以使复杂的状态逻辑更加清晰和可维护。 基本用法 useReducer 接收…

Linux——网络层协议

前言 网络层&#xff1a;在复杂的网络环境中确定一个合适的路径 目录 前言 一IP协议 1预备知识 2基本概念 3格式 4网段划分 4.1理解IP 4.2IP组成 4.3划分方式 4.4为什么要网段划分 5特殊的IP地址 6IP地址的限制 7私有IP和公网IP 8NAT技术 9理解公网 10路由 …

[MySQL课后作业]人事管理系统的SQL实践

1.假设某商业集团中有若干公司&#xff0c;人事数据库中有3个基本表 职工表:EMP(E#.ENAME,AGE, SEX, ECITY)。 其属性分别表示职工工号、姓名、年龄、性别和居住城市。 工作表:WORKS(E#,C#,SALARY)。其属性分别表示职工工号、所在公司的编号和工资。 公司表:COMP(C#,CANME,CITY…

【优选算法篇】踏入算法的深邃乐章:滑动窗口的极致探秘

文章目录 C 滑动窗口详解&#xff1a;进阶题解与思维分析前言第二章&#xff1a;进阶挑战2.1 水果成篮解法一&#xff1a;滑动窗口解法二&#xff1a;滑动窗口 数组模拟哈希表复杂度分析&#xff1a;图解分析&#xff1a;示例&#xff1a;滑动窗口执行过程图解&#xff1a; 详…

C for Graphic:径向模糊

最近要做一系列特效需求&#xff0c;顺便记录一下。 径向模糊&#xff08;也叫辐射模糊&#xff09;&#xff1a;一种由内向外发散的模糊的效果 原理&#xff1a;获取中心点&#xff08;centeruv&#xff09;到当前像素&#xff08;pixeluv&#xff09;的朝向法向…

RFC2616 超文本传输协议 HTTP/1.1

一、URL-俗称“网址” HTTP 使用 URL(Uniform Resource Locator&#xff0c;统一资源定位符)来定位资源&#xff0c;它是 URI(Uniform Resource Identifier&#xff0c;统一资源标识符)的子集&#xff0c;URL 在 URI 的基础上增加了定位能力 URI 除了包含 URL&#xff0c;还包…

车载实操:一对一实操学习、CANoe实操学习、推荐就业机会、就业技术支持、协助面试辅导

FOTA模块中OTA的知识点&#xff1a;1.测试过程中发现哪几类问题&#xff1f; 可能就是一个单键的ecu&#xff0c;比如升了一个门的ecu&#xff0c;他的升了之后就关不上&#xff0c;还有就是升级组合ecu的时候&#xff0c;c屏上不显示进度条。 2.在做ota测试的过程中&#xff…

5G NR:UE初始接入信令流程浅介

UE初始接入信令流程 流程说明 用户设备&#xff08;UE&#xff09;向gNB-DU发送RRCSetupRequest消息。gNB-DU 包含 RRC 消息&#xff0c;如果 UE 被接纳&#xff0c;则在 INITIAL UL RRC MESSAGE TRANSFER 消息中包括为 UE 分配的低层配置&#xff0c;并将其传输到 gNB-CU。IN…