Git的命令使用与IDEA内置git图形化的使用

news2024/9/22 3:42:07

Git 简介

Git 是分布式版本控制系统,它可以帮助开发人员跟踪和管理代码的更改。Git 可以记录代码的历史记录,并允许您在不同版本之间切换。

通过历史记录可以查看:

  • 进行了哪些更改?
  • 谁进行了更改?
  • 何时进行了更改?
  • 为什么需要更改?

  1. 仓库

仓库是用于存储代码的地方,其中包含所有的文件和历史记录。仓库可以被克隆到本地,这样您就可以在本地进行修改,并在需要时提交到远程仓库。

托管Git远程仓库:

  • githup
  • gitee
  • gitlab
  • gitcode
  1. 提交(Commit)
    提交是 Git 中的一个操作,表示将更改保存到仓库中。每次提交都会创建一个新的版本,您可以在任何时候查看之前的提交。
  2. 分支(Branch)
    分支是在仓库中创建的并行开发线。不同的分支可以用于不同的功能开发或修复错误。您可以在分支上工作,而不影响主分支。完成工作后,可以将分支合并回主分支。
  3. 合并(Merge)
    合并是将两个或多个分支的更改合并到一起的操作。这通常发生在一个分支完成其任务,需要将其更改整合到主分支或其他分支时。
  4. 拉取请求(Pull Request)
    拉取请求是在使用 Git 进行团队协作时常用的步骤。它表示一个开发者请求将他们的分支合并到主分支或其他分支。在合并之前,团队成员可以检查更改并提供反馈。
  5. 克隆(Clone)
    克隆是将远程仓库复制到本地机器的过程。这样,您就可以在本地对仓库进行操作,而不需要连接到远程仓库。
  6. 推送(Push)
    推送是将本地提交上传到远程仓库的操作。这使得其他人可以拉取您的更改。
  7. 拉取(Pull)
    拉取是从远程仓库获取更新并合并到本地仓库的操作。它通常结合了 Fetch(获取更新)和 Merge(合并更新)两个步骤。
    Git 是一个功能强大的工具,它提供了一套完整的版本控制策略,可以帮助团队协作开发代码,并管理软件项目的整个生命周期。

Git 相关操作

  • Git 基本操作:
    git status: 查看本地仓库的状态,包括哪些文件被修改、暂存或未跟踪。
    git add: 将修改的文件添加到暂存区(staging area),准备提交。
    git commit: 提交暂存区中的修改到本地仓库,生成新的提交记录。
    git push: 将本地仓库的提交推送到远程仓库,与其他团队成员共享更改。
    git pull: 从远程仓库拉取最新的更改,并合并到本地仓库。
    git clone: 克隆一个远程仓库到本地,创建一个新的本地仓库副本。
  • Git 分支管理:
    git branch: 显示所有本地分支。
    git checkout: 切换到另一个分支。
    git branch [分支名]: 创建一个新的分支。
    git merge: 合并一个分支到当前分支。
  • Git 远程仓库:
    git remote: 显示所有远程仓库。
    git add remote [仓库名] [仓库地址]: 添加一个新的远程仓库。
    git push [仓库名] [分支名]: 将本地分支推送到远程仓库。
    git pull [仓库名] [分支名]: 从远程仓库拉取并合并到本地分支。
  • Git 撤销操作:
    git reset: 撤销已经提交的更改,有不同的模式可以选择,如 soft, mixed, hard(与上一次commit保持一致)。
    git revert: 创建一个新的提交来撤销之前的更改,而不影响历史记录。
  • Git 标签:
    git tag: 显示所有标签。
    git tag [标签名]: 创建一个标签。
    git push [仓库名] [标签名]: 将标签推送到远程仓库。
    git push [仓库名] --tags: 将所有标签推送到远程仓库。
  • Git 日志:
    git log: 显示提交历史记录。
    git log --pretty=oneline: 以简洁的格式显示提交历史。
    git log [分支名]: 显示特定分支的提交历史
  • Git 删除:
    git push [仓库名] [:分支名]: 删除远程分支或标记。

IDEA Git操作

管理分支

合并分支:

合并分支

  1. Merge(合并)

分支的提交产生一个新的记录,合并到另一个分支。

在这里插入图片描述

  • 优点:
    • 更加安全,不改变分支线
    • 保留分支历史,每个分支的历史将被保留
    • 使用简单
  • 缺点:
    • 分支线混乱,在合并后都会产生新节点
    • 关系不清晰,分不清是合并还是原始的节点
  1. Rebase (变基)

重新拉取一个Release分支,把这个分支提交记录放在最新,再通过merge合并Release分支
在这里插入图片描述

  • 优点:
    • 干净的提交历史
    • 关系清晰
  • 缺点:
    • 改变提交记录,可能会改变提交顺序

不要在公共分支执行Rebase


在不同分支合并提交代码:
  1. cherry-pick(优选)

将一个分支中的提交合并到另一个分支,无冲突直接合并,有冲突解决冲突再合并。

  • 切换到合并的分支
  • 使用 git cherry-pick [提交记录号…]

优选

  1. patch(补丁)

将提交形成补丁,在其他分支应用这个补丁。

  • 生成补丁
git format-patch -1 -o /Users/apple

format-patch: 补丁命令
-1 : 最近提交,可以定义最近的几次提交(3为最近3次)也可以使用提交记录号
-o /Users/apple: 补丁文件路径

  • 应用补丁
// 检查补丁
git apply --stat 补丁路径
// 检验是否能打上补丁
git apply --check 
// 打补丁
git am 补丁路径

可多选提交,然后创建补丁
补丁
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


中途切换分支:
  1. stash (暂存)

在切换分支前,将当前变更暂存到栈中,并添加暂存注释,查看暂存区记录,恢复暂存记录。

  • 变更暂存到栈中
git stash
  • 添加暂存注释
git stash save '注释'
  • 查看暂存记录
git stash list
  • 恢复暂存记录
// 恢复最近暂存记录 ,会在暂存区删除
git stash pop
// 恢复最近暂存记录 ,不会在暂存区删除
git stasjh apply stash@{编号}
// 只移除暂存信息,不做恢复
git stasjh drop stash@{编号}
// 查看与本地代码区别
git stash show

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

给开源项目提交代码
  1. Fork

使用Fork将开源项目代码快照存在自己的远程仓库,然后拉取代码,新建分支,修改代码,提交推送
在这里插入图片描述

  1. PR

合到开源项目中

在这里插入图片描述
在这里插入图片描述


回退代码
  1. Revert(还原)

撤销某些提交,并用新提交覆盖。(逆向生成)

在这里插入图片描述
在这里插入图片描述
对刚刚还原的提交记录进行还原,就可以将之前还原的重新提交了
在这里插入图片描述

  1. Reset(回退)

在这里插入图片描述
在这里插入图片描述


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

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

相关文章

nodejs模板引擎(二)

虽然Jade现在已经被更名为Pug,但它的使用方式并没有太大的改变。下面是如何在Node.js中使用Pug(原Jade)模板引擎的基本步骤: 1. 安装 Pug 首先,你需要安装Pug模块。在你的项目目录中,使用npm来安装&#…

gradle 和 java 版本对应关系

文章目录 gradle 和 java 版本对应关系原地址 gradle 和 java 版本对应关系 原地址 https://docs.gradle.org/current/userguide/compatibility.html#compatibility

超市暑期(7-8月)生鲜之蔬果商品及营销操作建议!

生鲜经营的思路现在越来越被重视,越来越做的更精细化,营销方法和手段越来越多,如何正确地运用好营销策略,如何做到这个季节的生鲜经营既能保持新鲜,又能保持盈利呢? 7-8月份蔬菜重点商品及季节性商品 叶菜…

无人驾驶大热,新能源汽车智能化中的算网支持

来源新华社:百度“萝卜快跑”全无人驾驶汽车行驶在路上 当前,新能源汽车产业数智化已成为全球汽车产业数字化转型的焦点。一方面,随着人工智能、大数据、云计算等技术的深度融合,新能源汽车在自动驾驶、智能互联、能源管理等方面…

从零设计一个神经网络:实现手写数字识别

前言 为了能够更好的理解神经网络,从手写数字识别这个小任务来逐层弄清楚神经网络的工作原理以及一般流程是非常合适的。 这篇文章就来手写完成一个数字识别的任务,来说明如何设计、实现并训练一个标准的前馈神经网络,以期对神经网络有一个…

AI编程助手-Tabnine的使用体验

文章目录 一,安装使用1,VSCode安装Tabnine插件2,使用 三,Tabnine的工作原理1,深度学习的力量2,注意事项:最大化Tabnine的效能 在编程的世界里,每一行代码都承载着创造者的智慧与汗水…

ubuntu安装YOLOV8环境

文章目录 前言 前言 ubuntu20.04 使用vmware虚拟机 1、安装python sudo apt-get install python3 python3-pip2,安装虚拟环境 sudo apt install python3.8-venv3,创建虚拟环境 python3 -m venv yolov8-env4,进入虚拟环境 source yolov8…

测试人必会 K8S 操作之 Dashboard

在云计算和微服务架构的时代,Kubernetes (K8S) 已成为管理容器化应用的标准。然而,对于许多新手来说,K8S 的操作和管理常常显得复杂而神秘。特别是,当你第一次接触 K8S Dashboard 时,你是否也感到有些无所适从&#xf…

十大CRM系统对比:选出最适合你的工具

本文将分享10款优质CRM系统:纷享销客、Zoho CRM、HubSpot、Salesforce、悟空CRM、销售易、Pipedrive、Oracle CRM、Insightly、SugarCRM。 在选择CRM系统时,很多企业主和管理者都面临着一个难题:市面上的品牌众多,到底哪个才是最…

《昇思25天学习打卡营第14天|SSD目标检测》

SSD(Single Shot MultiBox Detector)是一种用于目标检测的深度学习算法。它的设计旨在同时检测多个对象,并确定它们在图像中的位置和类别。与其他目标检测算法相比,SSD具有速度快和精度高的特点,在实时检测应用中非常受…

python 代码设计贪吃蛇

代码: # -*- codeing utf-8 -*- import tkinter as tk import random from tkinter import messageboxclass Snake:def __init__(self, master):self.master masterself.master.title("Snake")# 创建画布self.canvas tk.Canvas(self.master, width400,…

Centos忘记密码,重置root密码

Centos忘记密码,重置root密码 操作环境:Centos7.6 1、选择包含rescue的选项,按e进入编辑模式 首先,我们需要重启系统,进入开机引导菜单界面。在这里,我们可以看到系统的内核版本和启动参数等信息。我们需…

期权专题12:期权保证金和期权盈亏

目录 1. 期权保证金 1.1 计算逻辑 1.2 代码复现 1.3 实际案例 2. 期权盈亏 2.1 价格走势 2.2 计算公式 2.2.1 卖出期权 2.2.2 买入期权 免责声明:本文由作者参考相关资料,并结合自身实践和思考独立完成,对全文内容的准确性、完整性或…

龙迅#LT8644EX适用于HDMI2.0 4进4出矩阵应用,分辨率最高支持4K60HZ!

1. 概述 LT8644EX是一款 1616 数字交叉点开关,具有 16 个差分 CML 兼容输入和 16 个差分 CML 输出。该LT8644EX针对每个端口的数据速率高达 6 Gbps 的不归零 (NRZ) 信令进行了优化。每个端口都提供可编程的输入均衡电平和可编程输出摆幅。…

10个Python函数参数进阶用法及代码优化

目录 1. 默认参数值:让函数更加灵活 2. 关键字参数:清晰的调用方式 3. *args:拥抱不确定数量的位置参数 4. **kwargs:处理不确定数量的关键字参数 5. 参数解包:简化多参数的传递 6. 命名关键字参数:限…

【第31章】MyBatis-Plus之注解配置

文章目录 前言一、注解介绍二、注解列表总结 前言 本文详细介绍了 MyBatisPlus 注解的用法及属性,提供了源码链接以便深入理解。欢迎通过下方链接查看注解类的源码。 Mybatis-Plus Annotation 源码 一、注解介绍 Mybatis-Plus注解统一存放在com.baomidou.mybatis…

PS 2024【最新】中文白嫖版!,安装教程,图文步骤

文章目录 软件介绍软件下载安装步骤 软件介绍 Photoshop,简称“PS” Adobe Photoshop,简称“PS”,是由Adobe Systems开发和发行的图像处理软件。Photoshop主要处理以像素所构成的数字图像。使用其众多的编修与绘图工具,可以有效地…

python调用阿里云汇率接口

整体请求流程 介绍: 本次解析通过阿里云云市场的云服务来实现程序中对货币汇率实时监控,首先需要准备选择一家可以提供汇率查询的商品。 https://market.aliyun.com/apimarket/detail/cmapi00065831#skuyuncode5983100001 步骤1: 选择商品 如图点击…

洁净室行业“”尘埃粒子计数器原理及品牌选型

尘埃粒子计数器原理 尘埃粒子计数器是一种基于激光粒子检测技术的精密仪器,用于测量洁净环境中单位体积内尘埃粒子的数量和粒径分布。其工作原理基于光散射现象:当空气中的微粒在激光束的照射下,会发生散射,散射光的强度与微粒的…

年薪60w的前端阿里P7专家,顶尖的技术人才,只因做到了这几点

全方位讲解前端主流框架Recat、Vue在项目中的应用、解析核心源码以及内存机制、核心技术点、架构设计思想等。从根源解决开发难题。 移动端App开发专题 了解移动端适配常见难点、学习Dart语法,掌握控件、布局、动画、操作手势、传感器、线程网络以及交互等核心技能。…