一小时搞定Git(含盖IDEA使用)

文章目录

  • 1. git基本概念
    • 1.1版本控制
      • 1.1.1 版本控制软件
  • 2. 命令的使用
    • 2.1 Linux命令
    • 2.2 git基础指令
      • 2.2.1 设置用户
      • 2.2.2 初始化本地仓库
      • 2.2.3 查看本地仓库状态
      • 2.2.4 添加暂存区域
      • 2.2.5 提交本地库
      • 2.2.6 切换版本
    • 2.3 分支操作
      • 2.3.1 分支基本操作
      • 2.3.2 合并操作
      • 2.3.4 分支开发规范
  • 3. 远程仓库
    • 3.1 创建远程仓库
    • 3.2 配置SSH公钥
      • 3.2.1 产生公钥
      • 3.2.2 查看公钥
      • 3.2.3 复制公钥到远程仓库
      • 3.2.4 验证公钥
    • 3.3 推送到远程仓库
      • 3.3.1 添加远程仓库
      • 3.3.2 查看远程仓库
      • 3.3.3 推送远程仓库
      • 3.3.4 建立关联
    • 3.4 远程仓库分支操作
      • 3.4.1 推送远程仓库分支
      • 3.4.2 克隆远程仓库
      • 3.4.3 拉取远程仓库
      • 3.4.4 远程仓库分支冲突
  • 4. IDEA中使用git
    • 4.1 在IDEA中配置git

1. git基本概念

1.1版本控制

1.1.1 版本控制软件

版本控制软件分为两种,一种是集中式,另一种是分布式。目前版本控制的主流是git

集中式版本控制软件

  • 软件:SVN/VSS/CVS
  • 优点:管唇人可以轻松掌握每个开发者的权限。
  • 缺点:当中央服务器发生故障了,开发者就无法提交更新,无法进行协同工作。

分布式版本控制软件

  • 软件:Git/Bazaar/Darcs
  • 优点:断网照样可以开发,因为每一个开发者都是完整地项目拷贝

2. 命令的使用

2.1 Linux命令

  1. touch 文件名:创建空白文件

  2. rm 文件名:删除文件

  3. 可以按Tab键自动补全代码

  4. vim 文件名:进入操作界面

    • i插入操作
    • esc
      • :q:无修改保存
      • :wq:保持有并退出
      • q!:不保存并退出
  5. cat文件名:查看文件

  6. 查看文件列表

    1. ll-a(查看全部文件列表)

2.2 git基础指令

2.2.1 设置用户

git config --global user.name 用户名
git config --global user.email 邮箱

签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。Git 首次安装必须设置一下用户签名,否则无法提交代码。

**※注意:**这里设置用户签名和将来登录 GitHub(或其他代码托管中心)的账号没有任何关系。

查看配置项

image-20240622200503538

2.2.2 初始化本地仓库

git init

2.2.3 查看本地仓库状态

git status

2.2.4 添加暂存区域

git add 文件名

可以使用git add.表示该文件夹所在的文件全部放到暂存区域

把文件移除暂存区:

git rm --cache 文件名

2.2.5 提交本地库

git commit -m "日志信息" 文件名

查看日志信息:

  • 查看历史日志

    git reflog
    
  • 查看当前日志

    git log
    

2.2.6 切换版本

git reset --hard 版本号

版本号是commit后面的那一串字符串

image-20240622202441274

2.3 分支操作

2.3.1 分支基本操作

创建分支

git branch 分支名

查看分支

git branch -v

切换分支

git checkout 分支名#切换并创建分支名
git checkout -b 分支名

删除分支

删除时检查:(检查新开发代码是否合并)

git branch -d 分支名

强制删除不做检查:

git branch -D 分支名

**※注意:**删除的时候要到别的分支,再去进行删除操作。

2.3.2 合并操作

正常合并分支

git merge 分支名

冲突合并分支

对同一个文件内容都进行修改了,需要手动修改内容。

2.3.4 分支开发规范

master(主分支)

  • 用于部署生产环境的分支,确保master分支稳定性。
  • 般由develop以及hotfix分支合并,任何时间都不能直接修改代码。

hotfix(修复分支)

  • 线上出现紧急问题时,需要及时修复,以master分支为基线,创建hotfix分支,修复完成后,需需要合并到master分支和develop分支。
  • 命名规则:hotfix/user

develop(开发分支)

  • 始终保持最新完成以及bug修复后的代码。
  • feature分支都是基于develop分支下创建的。

feature(功能分支)

  • 开发新功能时,以develop为基础创建feature分支。
  • 命名规则:feature/user_module

release(预上线或发布分支)

  • 当有一组feature开发完成,首先会合并到develop分支进入测试发布时,会创建release分支。
  • 测试时如果发现BUG,由develop修改BUG后,重新合并。
  • 当测试完成通过之后,合并master分支。

3. 远程仓库

3.1 创建远程仓库

3.2 配置SSH公钥

3.2.1 产生公钥

ssh-keygen -t rsa

3.2.2 查看公钥

cat ~/.ssh/id_rsa.pub

3.2.3 复制公钥到远程仓库

3.2.4 验证公钥

ssh -T git@gitee.com

3.3 推送到远程仓库

3.3.1 添加远程仓库

git remote add origin 仓库地址

3.3.2 查看远程仓库

git remote

3.3.3 推送远程仓库

git push origin master:分支名称

git push origin master:master可以省略最后面的master:

git push origin master

3.3.4 建立关联

git push --set-upstream origin mastergit branch -vv (查看关联)git push (建立好关系后,直接可以推送)

3.4 远程仓库分支操作

3.4.1 推送远程仓库分支

在gitee中创建分支

image-20240623145136788

git相关操作

  • image-20240623145225658

  • image-20240623145240648

  • image-20240623145251396

3.4.2 克隆远程仓库

git clone 仓库路径 本地目录

3.4.3 拉取远程仓库

抓取与合并

  • 抓取命令就是讲仓库里的更新的内容都抓取到本地,但是不会进行合并
  • 如果不能指定远端名称分支名,就会抓取所有的分支
git fetch origin master

拉取命令

  • 拉取命令就是将远端仓库的修改拉到了本地自动进行合并等同于fetch+merge
  • 如果不指定远端名称分支名,就会抓取所有的分支并更新
git pull orgin master

3.4.4 远程仓库分支冲突

如果发生了远程仓库分支冲突,需要pull下来之后进行人工处理

4. IDEA中使用git

4.1 在IDEA中配置git

.gitignore文件说明

image-20240623151932297

之后创建git仓库

image-20240623152201031

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

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

相关文章

基于STM32的智能家居安防系统

目录 引言环境准备智能家居安防系统基础代码实现:实现智能家居安防系统 4.1 数据采集模块4.2 数据处理与分析4.3 控制系统实现4.4 用户界面与数据可视化应用场景:智能家居安防管理与优化问题解决方案与优化收尾与总结 1. 引言 智能家居安防系统通过使…

195.回溯算法:分割回文串(力扣)

代码解决 class Solution { public:vector<string> res; // 当前路径&#xff0c;用于存储一个可能的回文分割结果vector<vector<string>> result; // 存储所有可能的回文分割结果// 判断子串 s[left:right] 是否是回文bool isPalindrome(const string& …

Linux应用系统快速部署:docker快速部署linux应用程序

目录 一、背景 &#xff08;一&#xff09;引入docker的起因 &#xff08;二&#xff09;docker介绍 &#xff08;三&#xff09;Docker部署的优势 1、轻量级和可移植性 2、快速部署和扩展 3、一致性 4、版本控制 5、安全性 6、资源隔离 7、简化团队协作 8、多容器…

VMware虚拟机三种网络模式设置 - Bridged(桥接模式)

一、前言 由于linux目前很热门&#xff0c;越来越多的人在学习linux&#xff0c;但是买一台服务放家里来学习&#xff0c;实在是很浪费。那么如何解决这个问题&#xff1f;虚拟机软件是很好的选择&#xff0c;常用的虚拟机软件有vmware workstations和virtual box等。 在使用虚…

基于imx6ull开发板 移植opencv4.7.0

一、概述 本章节是针对opencv-4.7.0移植到Linux系统&#xff0c;运行在正点原子-I.MX6U ALPHA开发板 上&#xff0c;详细的移植流程如下。 二、环境要求 2.1 硬件环境 正点原子-I.MX6U ALPHA开发板虚拟机&#xff1a;VMware 2.2 软件环境 Ubuntu系统要求&#xff1a;20.0…

DIVE INTO DEEP LEARNING 50-55

文章目录 50. semantic segmentation50.1 Basic concepts50.2 Major application 51. Transposed convolution51.1 Basic concepts51.2 Major role51.3 Implementation steps and application areas51.4 Transposed convolution51.5 Transposed convolution is a type of convo…

谁说串口通信波特率越高越好?

在电子世界里&#xff0c;串口通信就像是电子设备之间的“悄悄话”&#xff0c;它们通过串行数据传输来交换信息。但你知道吗&#xff1f;串口通信的波特率并不是越高越好&#xff0c;这事儿得好好聊聊。 1.什么是串口通信&#xff1f; 串口通信&#xff0c;就像它的名字一样&a…

深度学习11-13

1.神经元的个数对结果的影响&#xff1a; &#xff08;http://cs.stanford.edu/people/karpathy/convnetjs/demo/classify2d.html&#xff09; &#xff08;1&#xff09;神经元3个的时候 &#xff08;2&#xff09;神经元是10个的时候 神经元个数越多&#xff0c;可能会产生…

计算机组成原理 —— 存储系统(DRAM和SRAM,ROM)

计算机组成原理 —— 存储系统&#xff08;DRAM和SRAM&#xff09; DRAM和SRAMDRAM的刷新DRAM地址复用ROM&#xff08;Read-Only Memory&#xff08;只读存储器&#xff09;&#xff09; 我们今天来看DRAM和SRAM&#xff1a; DRAM和SRAM DRAM&#xff08;动态随机存取存储器&…

展示3D模型的网站哪个好?

如果仅仅是模型展示&#xff0c;目前国内外值得推荐的无非就是那么几个&#xff0c;它们各自有不同的特点和优势&#xff1a; 1、Sketchfab&#xff1a;Sketchfab是一个知名的3D模型展示平台&#xff0c;提供了海量的模型资源和出色的3D展示效果。用户无需安装任何插件即可在线…

Spring Cloud - nacos +ubuntu环境搭建

1、安装ubuntu虚拟环境 VMware虚拟机安装Ubuntu与配置Ubuntu&#xff08;超详细教程&#xff09; 2、docker环境安装 1、apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common 2、curl -fsSL https://mirrors.ustc.edu.cn/docke…

Maven的依赖传递、依赖管理、依赖作用域

在Maven项目中通常会引入大量依赖&#xff0c;但依赖管理不当&#xff0c;会造成版本混乱冲突或者目标包臃肿。因此&#xff0c;我们以SpringBoot为例&#xff0c;从三方面探索依赖的使用规则。 1、 依赖传递 依赖是会传递的&#xff0c;依赖的依赖也会连带引入。例如在项目中…

自动驾驶仿真测试用例表格示例 ACC ELK FCW

自动驾驶仿真测试用例表格示例 测试用例概览 本测试用例表格涵盖了自动驾驶系统中多个关键功能和场景的测试&#xff0c;旨在确保系统在不同条件下的表现和稳定性。 用例编号测试项目测试描述预期结果实际结果通过/失败TC-001ACC功能测试在高速公路上启用ACC&#xff0c;测试车…

SCI一区级 | Matlab实现BO-Transformer-LSTM多变量时间序列预测

SCI一区级 | Matlab实现BO-Transformer-LSTM多变量时间序列预测 目录 SCI一区级 | Matlab实现BO-Transformer-LSTM多变量时间序列预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.【SCI一区级】Matlab实现BO-Transformer-LSTM多变量时间序列预测&#xff0c;贝叶斯…

力扣SQL50 超过5名学生的课

Problem: 596. 超过5名学生的课 Code select class from courses group by class having count(distinct student) > 5;

高通安卓12-固件升级

下载步骤 第一步 格式化 「下载一次即可&#xff1b;能开机能下载的板子 忽略这一步&#xff0c;直接执行第二步即可」 QFIL工具配置为UFS类型&#xff0c;勾选Provision&#xff0c;如下图&#xff1a; Programmer选择prog_firehose_ddr.elf&#xff0c;Provision Xml选择prov…

【STM32-新建工程-CubeMX】

STM32-新建工程-CubeMX ■ CubeMX 生产工程 ■ CubeMX 生产工程

QT事件处理系统之五:自定义事件的发送案例 sendEvent和postEvent接口

1、案例 双击窗口,会发送 自定义事件,然后在事件过滤中心进行拦截处理自定义事件。 2、核心代码 /*解释:双击窗口时,将产生双击事件,然后该事件被包裹成一个对象,随后将会被发往event事件中心,然后进行事件的处理(Widget对象);因为m_lineEdit开启了事件过滤机制,所…

Linux - 利用/proc/sys/vm/drop_caches实现手工清理系统缓存

文章目录 现象buff/cache 的作用和含义分析 buff/cache 占用大量内存的原因是否需要清理缓存及其方法 命令清理缓存方法1. sync 命令2. echo 3>/proc/sys/vm/drop_caches 命令 注意事项小结 现象 使用free 命令&#xff0c;看到 buff/cache 占用很多 。 free 命令用于显示系…

第一个Flask程序

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 一切准备就绪&#xff0c;现在我们开始编写第一个Flask程序&#xff0c;由于是第一个Flask程序&#xff0c;当然要从最简单的“Hello World&#xff…