Git开发工具基本使用

文章目录

  • 前言
  • Git仓库
    • 基本概念
    • 基本环境安装
    • 清除原先配置
    • 生成秘钥
    • 配置Host
    • 添加公钥
    • Github添加
    • Gitee添加
    • 测试
  • 本地仓库
    • 基本概览
    • 查看提交日志(log)
    • 版本回退
    • 添加文件至忽略列表
    • 分支
    • 分支冲突
  • 远程仓库
    • 推送到远程仓库
    • 从远程仓库中抓取和拉取
  • 在Idea中使用Git
  • 总结

前言

这里只是对Git的一些基本使用做一个简单地梳理,方便重新快速上手。怎么拉项目,怎么提交,怎么创建分支,怎么合并提交等等基本操作。这玩意说实话太久不用确实会忘记。(适合快速恢复记忆使用)

Git仓库

基本概念

首先基本的概览是这样的:
在这里插入图片描述

我们的仓库其实分为好几个部分:

  1. 工作区:实际写代码的地方
  2. 暂存区:暂时存放代码的地方
  3. 本地仓库: 本地仓库具备完整的本地代码管理功能
  4. 远程仓库:项目共享的远程代码仓库

那么我们的基本操作其实也就是分几部分的操作:

  1. 在本地创建仓库,本地管理仓库分支
  2. 提交本地仓库到云端,管理云端的分支
  3. 拉取云端仓库,在本地各种操作,然后再上传云端,管理各种分支

所以我们的目光就可以,先从工作区到暂存区看齐,然后再从暂存区到本地仓库,之后再由本地仓库到远程仓库看齐。

基本环境安装

okey, 公欲善其器,必先利其器。那么这里的话为了我们能够和github,gitee顺利拉取,推送项目。我们需要配置好一些相应的信息。
这里的话我还是在Windows平台,当然你在Linux也是一样的,反正都是在git环境操作,和你哪个操作系统没啥关系。Mac也一样,不过Mac要注意一下自己的版本,Mac是自带了一个嘛,毕竟人家也是Unix改过来滴,和Ubuntu和其它Linux图形发行版是同门手足嘛。
这里推荐Windows的cmd工具cmder
在这里插入图片描述

清除原先配置

如果你是新安装的git跳过,如果不是这样操作
这里是先清除你原来的配置

$ git config --global --unset user.name "你的名字"
$ git config --global --unset user.email "你的邮箱"

生成秘钥

git本身也是一个小“Linux”嘛,我们本质上还是类似ssh远程推送文件嘛。

这里生成你的秘钥,例如我这里生成三个。
这里的话先进入你的 git 环境

在这里插入图片描述
分别输入以下指令,生成秘钥

ssh-keygen -t rsa -f ~/.ssh/id_rsa.github -C "xxxx@qq.com"
ssh-keygen -t rsa -f ~/.ssh/id_rsa.gitlab -C "xxxx@qq.com"
ssh-keygen -t rsa -f ~/.ssh/id_rsa.gitee -C "xxxx@qq.com"

然后你会在这个目录看到这些玩意
在这里插入图片描述

配置Host

现在我们生成了三个平台的秘钥(整个过程其实像极了ssh免密登录的操作)

touch ~/.ssh/config    

然后我们使用vim直接编辑
在这里插入图片描述

Host github.com
        HostName github.com
        User git
        IdentityFile ~/.ssh/id_rsa.github

        Host git@gitlab.com
        HostName gitlab.com
        User git
        IdentityFile ~/.ssh/id_rsa.gitlab

Host gitee.com
        Port 22
        HostName gitee.com
        User git
        IdentityFile ~/.ssh/id_rsa.gitee


这个一目了然,什么意思嘛,那个Port 22 是啥其实不用写,默认都是。
后面如果你有自己的公司的那个托管平台的话,也是一样配置的

添加公钥

我这里演示两个平台,一个是GitHub还有是gitee
首先是github

Github添加

在设置找到这玩意
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
这个时候回到你的git
由于你要添加的是githu所以你找到这个文件
在这里插入图片描述
把里面的内容复制
在这里插入图片描述

然后在github页面添加
此时我添加了一个
在这里插入图片描述

Gitee添加

这个就更简单了
在这里插入图片描述
在这里插入图片描述

测试

ssh -T git@github.com
ssh -T git@gitlab.com
ssh -T git@gitee.com

在这里插入图片描述

这样的话,本地的环境就算是配好了,当然这里省略了安装git工具的流程。

本地仓库

基本概览

okey, 现在的话,把目光看到我们实际的git的操作上面。

首先的话我们还是来看到我们的一个本地仓库的基本操作:

git init 初始化仓库之后:
在这里插入图片描述
本地仓库的基本上其实就这些东西。

  1. git add (工作区 --> 暂存区)
    命令形式:git add 单个文件名|通配符
    将所有修改加入暂存区:git add .
  2. git commit (暂存区 --> 本地仓库)
    作用:提交暂存区内容到本地仓库的当前分支
    命令形式:git commit -m ‘注释内容’
    .
    之后我们可以使用 git statue 来查看我们基本的一个仓库的状态

查看提交日志(log)

查看提交日志是一件非常重要的事情,因为我们通过查看到我们本地的仓库的一个log,可以维护我们的一个仓库。

作用:查看提交记录
命令形式:git log [option]
options
--all 显示所有分支
--pretty=oneline 将提交信息显示为一行
--abbrev-commit 使得输出的commitId更简短
--graph 以图的形式显示

那么这里的话,说一下很常用的指令,但是不好记:

alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
#用于输出当前目录所有文件及基本信息
alias ll='ls -al'

这里的话,对两个指令取了别名(当然是临时的,你可以修改你都.barchrc文件让这个别名永久可用)

下次使用的时候可用,可以直接git-log 查看到我们整个仓库的提交细节了。这个指令非常直观。

版本回退

作用:版本切换
命令形式:git reset --hard commitID
	commitID 可以使用 git-log 或 git log 指令查看
如何查看已经删除的记录?
	git reflog
	这个指令可以看到已经删除的提交记录

添加文件至忽略列表

一般我们总会有些文件无需纳入Git 的管理,也不希望它们总出现在未跟踪文件列表。 通常都是些自动
生成的文件,比如日志文件,或者编译过程中创建的临时文件等。 在这种情况下,我们可以在工作目录
中创建一个名为 .gitignore 的文件(文件名称固定),列出要忽略的文件模式。下面是一个示例:

# no .a files
*.a
# but do track lib.a, even though you're ignoring .a files above
!lib.a
# only ignore the TODO file in the current directory, not subdir/TODO
/TODO
# ignore all files in the build/ directory
build/
# ignore doc/notes.txt, but not doc/server/arch.txt
doc/*.txt
# ignore all .pdf files in the doc/ directory
doc/**/*.pdf

分支

分支是我们这边非常重要的一个模块
我们在实际开发的时候,可能针对不同的开发功能创建不同的分支。当各个功能ok的时候,合并到统一分支。

查看本地分支
	命令:git branch
创建本地分支
	命令:git branch 分支名
切换分支(checkout)
	命令:git checkout 分支名
我们还可以直接切换到一个不存在的分支(创建并切换)
	命令:git checkout -b 分支名
合并分支(merge)
    一个分支上的提交可以合并到另一个分支
    命令:git merge 分支名称
删除分支
    不能删除当前分支,只能删除其他分支
    git branch -d b1 删除分支时,需要做各种检查
    git branch -D b1 不做任何检查,强制删除

分支冲突

当两个分支上对文件的修改可能会存在冲突,例如同时修改了同一个文件的同一行,这时就需要手动解
决冲突,解决冲突步骤如下:

  1. 处理文件中冲突的地方
  2. 将解决完冲突的文件加入暂存区(add)
  3. 提交到仓库(commit)

开发中分支使用原则与流程:
在开发中,一般有如下分支使用原则与流程:
:master (生产) 分支
线上分支,主分支,中小规模项目作为线上运行的应用对应的分支;
:develop(开发)分支
是从master创建的分支,一般作为开发部门的主要开发分支,如果没有其他并行开发不同期上线要求,都可以在此版本进行开发,阶段开发完成后,需要是合并到master分支,准备上线。
:feature/xxxx分支
从develop创建的分支,一般是同期并行开发,但不同期上线时创建的分支,分支上的研发任务完
成后合并到develop分支。
:hotfix/xxxx分支,
从master派生的分支,一般作为线上bug修复使用,修复完成后需要合并到master、test、
develop分支。
此外还有一些其他分支,例如test分支(用于代码测试)、pre分支(预上线分支)等等。

大致关系图如下:
在这里插入图片描述

远程仓库

这里的话,我们需要注意的是,请在Git仓库章节处,完成密钥的创建。这样的话才能顺利拉取代码。
两个比较重要的指令:

git clone 仓库地址
从远程仓库拉取代码到我们本地

git remote add origin 仓库地址
将我们本地的仓库关联到远程仓库,方便后面提交

这两个指令可以帮助我们完成本地的一个项目和远程项目的一个关联。

git remote 可以查看到我们的一个远端的仓库

推送到远程仓库

命令:git push [-f] [–set-upstream] [远端名称 [本地分支名][:远端分支名] ]

  1. 如果远程分支名和本地分支名称相同,则可以只写本地分支
    git push origin master
    -f 表示强制覆盖
    –set-upstream 推送到远端的同时并且建立起和远端分支的关联关系。
    git push --set-upstream origin master
  2. 如果当前分支已经和远端分支关联,则可以省略分支名和远端名。
    git push 将master分支推送到已关联的远端分支。

此外:git branch -vv 可以查看本地和远端的一个分支关联情况

git branch -u origin/B A 可以将远程的B仓库和本地的A关联起来。

从远程仓库中抓取和拉取

  1. 抓取 命令:git fetch [remote name] [branch name]
    抓取指令就是将仓库里的更新都抓取到本地,不会进行合并
    如果不指定远端名称和分支名,则抓取所有分支。

  2. 拉取 命令:git pull [remote name] [branch name]
    拉取指令就是将远端仓库的修改拉到本地并自动进行合并,等同于fetch+merge
    如果不指定远端名称和分支名,则抓取所有并更新当前分支。

所以在使用git pull 时,需要注意,这里还执行了 git merge 远程分支 的操作,因此有可能会产生冲突。比如远端仓库当中的分支A与本地分支B同一个文件的同一行不一样。那么这个时候将产生冲突。此时需要手动解决。只能git statue 查看冲突。所以的话创建不同的分支时,请只需负责自己的那部分代码。非要该的话,也先合并一个干净的分支,然后再修改。

在Idea中使用Git

安装好IntelliJ IDEA后,如果Git安装在默认路径下,那么idea会自动找到git的位置,如果更改了Git的安
装位置则需要手动配置下Git的路径。选择File→Settings打开设置窗口,找到Version Control下的git选
项:

在这里插入图片描述
然后克隆远程(本地创建也可以,他会自己识别的)
在这里插入图片描述
这个的话,你只要搞清楚git的一些基本概念,看着GUI操作即可,没啥好说的。

总结

2024.1.1 新的一年,开始!

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

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

相关文章

仓储9代巷道灯接口文档-V2.0

标签注册 仓储9代巷道灯注册 磁体靠近条码所在区域附近,触发巷道灯注册到系统 注册成功:闪红灯变绿灯常亮,之后熄灭 查询巷道灯信息接口 接口地址:192.168.1.200/wms/associate/queryIndicates 请求类型:applicat…

【DevOps】搭建 项目管理软件 禅道

文章目录 1、简介2、环境要求3、搭建部署环境3.1. 安装Apache服务3.2. 安装PHP环境(以php7.0为例 )3.3. 安装MySQL服务 4、搭建禅道4.1、下载解压4.2、 配置4.2.1、 启动4.2.2、自启动4.2.3、确认是否开机启动 5、成功安装 1、简介 禅道是国产开源项目管…

堆排序(C语言版)

一.堆排序 堆排序即利用堆的思想来进行排序,总共分为两个步骤: 1. 建堆 升序:建大堆 降序:建小堆 2. 利用堆删除思想来进行排序 1.1.利用上下调整法实现堆排序 第一步:建堆 好了,每次建堆都要问自己…

Jmeter的安装与快速使用(做并发测试)

1、了解 JMeter是一款开源的性能测试工具,它主要用于模拟多种负载条件下的应用程序或服务器的性能和功能。JMeter可以发送不同类型的请求,如HTTP、HTTPS、FTP、SOAP、REST等,并且可以模拟多种负载类型,例如并发用户、线程组、定时…

【Linux常用指令】用户管理

文章目录 Linux系统目录结构Linux用户和用户组用户管理概述用户账号和用户组用户概念用户组概念 Linux用户和组的关系 Linux用户管理添加用户 useradd选项修改用户 usermod用户账号口令管理passwd删除用户 userdel Linux用户组管理添加新组groupadd修改群组groupmod删除群组gro…

传统企业转型需要怎么做?

传统企业面临着巨大的压力和挑战。在这个变革的时代,转型成为了传统企业持续发展的必由之路。本文将探讨传统企业如何成功转型,从困境中找到新的机遇,实现蜕变。 一、明晰转型目标 在转型的初期,传统企业需要明确自己的转型目标。…

RabbitMQ(七)ACK 消息确认机制

目录 一、简介1.1 背景1.2 定义1.3 如何查看确认/未确认的消息数? 二、消息确认机制的分类2.1 消息发送确认1)ConfirmCallback方法2)ReturnCallback方法3)代码实现方式一:统一配置a.配置类a.生产者c.消费者d.测试结果 …

如何保护企业数据安全

数据安全是通过采用一系列 IT 安全策略和程序来保护数字信息免遭泄露、盗窃和破坏的做法,这些策略和程序可以包括系统安全、设备管理、访问控制、审计、主动威胁搜寻、事件响应等。 组织存储和处理大量数据,例如财务记录、知识产权和客户的个人数据&…

免费邮件系统hMailServer本地部署并实现远程发送邮件

文章目录 前言1. 安装hMailServer2. 设置hMailServer3. 客户端安装添加账号4. 测试发送邮件5. 安装cpolar6. 创建公网地址7. 测试远程发送邮件8. 固定连接公网地址9. 测试固定远程地址发送邮件 前言 hMailServer 是一个邮件服务器,通过它我们可以搭建自己的邮件服务,通过cpola…

python基础-01

文章目录 前言一、python中的注释二、变量的数据类型1.Number(数字)2.Boolean(布尔类型)—— True 和 False3.String(字符串)4.List(列表)5.Tuple(元组)6.Dic…

wordpress在界面将站点地址直接修改为https导致上不去问题的解决办法

wordpress在界面将站点地址直接修改为https导致上不去问题的解决办法 #修改数据库yz_options

从零实现一套低代码(保姆级教程) --- 【12】实现左侧层级树并支持查看JSON

摘要 目前,我们还有最后一个小模块没有实现,那就是左侧的数据。 我们希望它能够展示整个页面的相关协议,其实也就是我们redux中管理的数据。我们希望能够通过可视化的方式看到它。 因为有时候我们想知道一个组件的具体信息,就可…

Golang http包实战:构建RESTful API

Golang http包实战:构建RESTful API 引言简介目的 Go语言http包简介功能概述基本组件 搭建基础Web服务器步骤指导代码示例创建简单的HTTP文件服务器步骤说明代码示例 设计RESTful API结构设计原则路由设计 实现RESTful API处理请求代码示例 中间件应用代码示例 错误…

从零开始配置pwn环境:CTF PWN 做题环境

前期在kali2023环境安装的pwndocker使用发现不好用,so找了网上配置好pwn环境的虚拟机。 GitHub - giantbranch/pwn-env-init: CTF PWN 做题环境一键搭建脚本 可以直接下载我配置好的Ubuntu 16.04,为VMware导出的ovf格式 链接:百度网盘 请输…

小兔鲜儿 uniapp - SKU 模块

目录 存货单位(SKU)​ 插件市场​ 下载 SKU 插件​ 使用 SKU 插件​ 插件类型问题​ 核心业务​ 渲染商品规格​ 打开弹窗交互​ 渲染被选中的值​ 存货单位(SKU)​ SKU 概念 存货单位(Stock Keeping Unit&a…

55寸oled透明显示屏售价,受哪些因素影响

55寸OLED透明显示屏的售价受到多个因素的影响,包括以下几个方面: 尺寸和分辨率:OLED透明显示屏的尺寸和分辨率是决定价格的重要因素。较大的尺寸和较高的分辨率会增加制造成本和售价。 技术水平和制造工艺:OLED透明显示屏的技术水…

@Autowired和@Resource的区别是什么

引言 当涉及到Spring框架中的依赖注入时,Autowired和Resource是两个常用的注解。它们都可以用来注入Bean,并且在实际开发中经常被使用。然而,Autowired和Resource之间存在一些重要的区别,包括适用范围、注入规则和注解来源等方面…

电源模块电阻测试:万用表如何测量电源的电阻?

电阻是电路中常用的电子元件,它可以调节电压、限制电流,从而保护电路。电阻测试是电源模块的常规测试项目之一,常见的电阻测试方法是通过万用表来测量电阻阻值,具体如下: 一、两线法 适用于测量较大的电阻值&#xff0…

众和策略:沪指震荡跌0.21%,煤炭、电力等板块拉升,核电概念活跃

2日早盘,三大股指盘中震荡走低,创业板指跌逾1%,北证50指数逆市拉升;北向资金大幅流出。 到午间收盘,沪指跌0.21%报2968.7点,深成指跌0.91%,创业板指跌1.38%,北证50指数涨1.33%&…

成功安装Milvus!零基础Ubuntu部署安装Milvus教程

Milvus源码编译安装 Milvus源码编译安装Golang和C开发环境安装源码安装编译基础依赖:OpenBLAS安装Rust安装前置依赖下载源码更改安装脚本开始编译测试Milvus是否安装成功 遇到的问题问题1:问题2:问题3:问题4:问题5&…