Git命令Gitee注册idea操作git超详细

news2024/11/23 21:03:32

文章目录

  • 概述
  • 相关概念
  • 下载和安装
  • 常见命令
  • 远程仓库介绍与码云注册创建
    • 介绍
    • 码云注册
    • 远程仓库操作
      • 关联
      • 拉取
      • 推送
      • 克隆
  • 在idea中使用git
    • 集成
    • add和commit
    • 差异化比较&查看提交记录
    • 版本回退及撤销
    • 与远程仓库关联 push
    • 从远程仓库上拉取,克隆项目到本地
    • 创建分支
    • 切换分支
    • 将除了master分支推送到gitee上
    • 将其他分支代码合并到master分支上并上传提交
    • 处理版本冲突

概述

Git是目前世界上最先进的分布式文件版本控制系统
版本控制:所谓的版本控制就是将一组文件的改动记录下来,形成版本历史,以便需要恢复
作用
1、代码共享:每位开发者可以使用Git将自己的代码上传到云服务器上,同时使用Git还可以将其他人上传的代码下载到自己的电脑上,这样实现了代码共享
2、回溯版本:Git会保存每次上传的痕迹,每上传一次就做一次备份,每次备份就相当于一个版本,任意时间可以通过Git查询曾经提交过的每一个版本对应的内容。
3、追踪信息:Git提供了强制记录日志的功能,每次上传信息都要求写日志,可以记录本次上传的相关信息

相关概念

Snipaste_2024-05-07_09-02-13.png

  • 工作区:就是平时存放代码的地方
    • 一个文件夹通过git init设置成一个git可以管理的文件夹,这个文件夹中的内容(除.git文件夹)就是工作区
  • 版本库:就是安全存放数据的位置,这里面有提交到所有版本的数据
    • 其中HEAD指向最新放入仓库的版本
    • 工作区的隐藏目录.git,它不算工作区,而是版本库
  • 暂存区:index,用来暂时存放工作区中修改的内容。在加入到本地仓库前,会先放置在暂存区
    • 一般存放在.git/index文件中
  • HEAD:指向最新放入仓库的版本
  • master:是我们的主分支,是本地仓库的一部分
    • 当我们git init后,并不会立刻产生分支,而是我们添加了一个文件,并git add,git commit后这时我们查看分支情况便可以看到master分支了
  • objects:是git对象库,是用来存储各种创建的对象和内容
  • 远程仓库:托管代码的服务器,常用github,gitee,gitlab

下载和安装

下载地址:https://git-scm.com/download
安装过程非常简单,直接next
Snipaste_2024-05-07_09-20-41.png
点击Finish完成安装,验证安装,找一个桌面空白处,右键出现下列窗口
Snipaste_2024-05-07_09-21-44.png

常见命令

创建一个文件夹,右键然后点击Git Bash here

  1. 初始化工作区:git init
  2. 查看当前工作区的代码文件状态:git status
    1. 红色代表未放到暂存区
    2. 绿色代表放到暂存区
  3. 将工作区的代码文件提交到暂存区:git add 文件名
  4. 将暂存区的代码文件提交到本地仓库:git commit -m ‘提交信息’
  5. 差异化比较
    1. 工作区和暂存区:git diff 文件名
    2. 暂存区和本地仓库:git diff --cached 文件名
    3. 工作区和本地仓库:git diff HEAD 文件名
  6. 查看提交日志:git log/git reflog
    1. git reflog:特点是查看的提交版本号比较短
  7. 版本回退:回退哪个版本
    1. 回退到上一个版本(提交位置):git reset --hard HEAD^
    2. 回退到指定版本:git reset --hard 版本号
  8. 撤销工作区:git checkout 文件名
  9. 将代码从暂存区撤销到工作区:git reset HEAD 文件名
  10. 分支:
  11. 创建分支:git branch 分支名
  12. 查看分支:git branch
  13. 切换分支:git checkout 分支名
  14. 合并分支:git merge 分支名
  15. 删除分支:git branch -d 分支名

:合并分支

  1. 如果将其他分支合并到master主分支上,那么需要切换到master上
  2. 如果将dev分支合并到主分支master上,那么必须在dev分支上进行commit提交到本地仓库

远程仓库介绍与码云注册创建

介绍

远程仓库是公网或外网中的一个仓库,主要用于存储个人或团队的提交记录与提交日志,团队开发也是靠远程仓库实现的。大家把东西提交到同一个远程仓库里面就ok了,这样每个人都可以获取到团队内开发的所有内容了。
常用的远程仓库

  • github:https://github.com
    • 主站在国外,速度一般
  • gitee:https://gitee.com
    • 码云,速度快,是开源中国推出的基于Git的代码托管平台
  • gitlab:https://about.gitlab.com
    • 可以搭建一个web服务器,私服安全

码云注册

访问地址:https://gitee.com

  1. 没有账号的按要求注意并登录
  2. 创建仓库

Snipaste_2024-05-07_13-47-52.png

  1. 填写对应信息

image.png

  1. 复制远程仓库的地址

image.png

远程仓库操作

关联

在推送到码云仓库前,需要先建立本地仓库与远程仓库的关系
命令:git remote add origin 远程仓库地址

拉取

从码云仓库拉取到本地仓库,在推送代码前必须先拉取代码,否则无法推送本地仓库代码到码云仓库
命令:git pull origin master --allow-unrelated-historities
首次拉取需要添加:–allow-unrelated-histories
后续拉取:git pull

推送

本地仓库到码云仓库
首次推送:git push -u origin master
后续推送:git push

克隆

如果我们新加入一个团队,这个时候就需要我们把代码从远程仓库克隆过来,先新建一个文件夹,在新的文件夹中鼠标右键点击Git bash Here,输入下面命令
命令:git clone 远程仓库地址
克隆和拉取的区别

  • 相同点:都是从远程服务器拉取代码到本地
  • 不同点:
    • 克隆:是本地没有版本库时,从远程服务器克隆到整个版本库到本地,是一个本地从无到有的过程
    • 拉取:在本地有版本库的情况下,从远程库获取最新commit数据,并merge到本地

在idea中使用git

集成

  1. 点击idea中File->settings
  2. 弹出settings后在搜索中输入"git",选择Git,指定你的安装的git.exe目录

Snipaste_2024-05-07_14-28-09.png

  1. 校验git是否集成完成,点击test,弹出校验窗口,点击git Executed successed 成功则表示集成完成

image.png

  1. 创建工程

image.png

  1. 初始化工作区:点击VCS->Create Git Reposity

image.png

  1. 选择管理的文件夹,这里我现在的为gitProject文件夹

image.png

  1. 点击左下角,Git菜单,此时day0901_git下所有的文件都变成棕色,说明我们的工作区添加完成了

image.png

  1. 忽略文件类型

image.png
办法:将.gitignore文件复制到项目的根目录

add和commit

  1. 工作区提交暂存区 add

image.png
颜色变为绿色

  1. 暂存区提交到本地仓库 commit

image.png
image.png
image.png
image.png
image.png

差异化比较&查看提交记录

工作区和本地仓库比较
image.png
image.png
image.png
查看记录
image.png

版本回退及撤销

先修改java文件,提交俩次,总共有三次提交记录
本地仓库回退撤销

  1. 点击git->log查看3个提交的版本

image.png

  1. 现在在本地仓库中回退到第二次提交,选择第二次提交的标记

image.png

  1. 选择Hrad

image.png

  1. 回退成功

image.png
工作区撤销

  1. 当我们在工作区编辑代码时候,希望撤销未提交本地仓库的代码时候,在Git中右键

image.png

  1. 点击rollback

image.png

  1. 撤销成功

image.png
说明:针对上述工作区的代码撤消,有同学会有疑问,我直接删除不就完了吗,为什么这么麻烦,其实我们在实际开发中代码会很多,那么当你书写了很多不同地方的代码,以至于你都忘记哪些是新编写的代码了,那么删除是一件很痛苦的事情,并且容易误删,所以使用工作区撤销更加方便。

与远程仓库关联 push

上面已经创建了远程仓库,接下来用idea与远程仓库关联

  1. 点击推送

image.png

  1. 点击Define remoteimage.png
  2. 输入上面复制的远程仓库地址

image.png

  1. 选择提交

image.png
关联远程仓库

  1. Git—>Manage Remotes …

image.png

  1. 点击弹出窗口中的+

image.png

  1. 将复制的远程仓库地址复制到url中
  2. 成功关联

image.png

从远程仓库上拉取,克隆项目到本地

拉取

  1. 先在gitee上复制要导入项目的连接地址
  2. 点击项目->Git->pull

image.png

  1. 如果没有master按ctrl+F5

image.png
第一次拉取失败

  1. 点击右下角master

image.png

  1. 右击选择下面图中

image.png

  1. 点击merge

image.png

  1. 点击红色箭头,最后点击apply

克隆

  1. 点击git->clone

image.png

  1. 填写地址和存放项目位置

image.png

  1. Trust Project或者New Window
  2. 导入之后查看当前项目在idea中的三个环境

maven地址 File->settings
image.png
idea环境必须都是utf-8编码
image.png
当前使用的jdk8
image.png

创建分支

image.png
创建到本地分支上

切换分支

  1. 将gitee中所有的分支拉取到idea中

image.png

  1. 在idea中查看本地和远程分支

image.png

  1. 切换到dev1分支上

  1. 我们不能在master分支上进行书写代码,都是在每个分支上写代码,然后最后确定没问题之后再将其他分支上的代码合并到master代码上
  2. 在切换其他分支之前必须先将当前分支的代码进行提交,否则当前分支的代码就不存在了

提交当前分支的代码
看上面commit
切换分支
image.png

将除了master分支推送到gitee上

和上面一样,有个简化的是中间commit和push
image.png
image.png
注意:推送的一定是dev1分支上的代码,如果推送的是master分支上的代码就会报错。

将其他分支代码合并到master分支上并上传提交

要想将dev1分支代码合并到master分支上,首先需要切换到master分支上,然后在合并

  1. 将dev1分支上的代码提交
  2. 切换到本地master分支

image.png

  1. 将dev1分支代码合并到master分支上

image.png

  1. 将master分支上的代码提交并推送到gitee上

image.png

处理版本冲突

当多个用户对同一个文件交叉修改的时候就尴尬了。A修改完提交一个,B修改完又提交一个,这个时候A修改完提交,问题来了,如果A提交成功,那么就相当于忽略了B提交的内容。这个时候就要强制你去处理一下这个问题,这就是我们所说的冲突问题。

  1. 先拉取代码,这时候App的类变成红色,且弹出窗口,需要手动进行合并

image.png

  1. 解决冲突

image.png

  1. 选择主干

image.png

  1. 推送到远程仓库

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

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

相关文章

使用wxPython和pandas模块生成Excel文件

介绍: 在Python编程中,有时我们需要根据特定的数据生成Excel文件。本文将介绍如何使用wxPython和pandas模块来实现这个目标。我们将创建一个简单的GUI应用程序,允许用户选择输出文件夹和输入的Excel文件,并根据Excel文件中每个单…

代码随想录算法训练营第十八天:二叉树的层序遍历(中间放假)

代码随想录算法训练营第十八天:二叉树的层序遍历(中间放假) ‍ ​​ 102.二叉树的层序遍历 力扣题目链接(opens new window) 给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右…

算法提高之能量项链

算法提高之能量项链 核心思想&#xff1a;区间dp 通过观察发现可以将n个珠子最后的n1个数看作石子 合并石子 在l~r的范围内 找k作隔断 #include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N 110,M N<<…

【PCB字符批量修改】- PCB板工艺及AD软件配置

软件版本 选择丝印-单机右键&#xff0c;选择find similar objects 第二步单机Apply 第三步选择OK 第四步在Panels中选择Properties里面修改Text Height和Stroke Width 到此搞定&#xff01;

数据结构——链表(精简易懂版)

文章目录 链表概述链表的实现链表的节点&#xff08;单个积木&#xff09;链表的构建直接构建尾插法构建头插法构建 链表的插入 总结 链表概述 1&#xff0c;链表&#xff08;Linked List&#xff09;是一种常见的数据结构&#xff0c;用于存储一系列元素。它由一系列节点&…

python实现的信号合成分析系统(DSP)

python实现的信号合成分析系统(DSP) 流程 1、在QT界面上设置好信号频率,采样频率,采样点数 2、使用np构建sin函数 3、使用matplotlib画出 4、分别分析合成信号的FFT频域信息1、效果图 2、示例代码 def btn_com_clicked(self):# 信号合成分析Fs = self.com_fs_edit_value #…

【嵌入式DIY实例】-基于GSM的远程灌溉系统

基于GSM的远程灌溉系统 文章目录 基于GSM的远程灌溉系统1、硬件准备与接线2、软件准备3、代码实现本文将详细介绍如何搭建通过使用手机实现对灌溉系统的远程控制。该系统利用全球移动通信系统(GSM)技术在灌溉系统和移动电话之间建立通信。该系统建立在流行的开源微控制器平台…

重庆大足某厂不锈钢管件酸洗钝化-智渍洁

简报&#xff1a;重庆大足某厂不锈钢管件酸洗钝化 重庆大足某厂不锈钢管件酸洗钝化 - 重庆智渍洁环保科技有限公司简报&#xff1a;重庆大足某厂不锈钢管件酸洗钝化https://www.zhizijie.com/hl/zixun/gongsi/237.html

【Linux网络】网络文件共享

目录 一、存储类型 二、FTP文件传输协议 2.1 FTP工作原理 2.2 FTP用户类型 2.3 FTP软件使用 2.3.1 服务端软件vsftpd 2.3.2 客户端软件ftp 2.4 FTP的应用 2.4.1 修改端口号 2.4.2 匿名用户的权限 2.4.3 传输速率 三、NFS 3.1 工作原理 3.2 NFS软件介绍 3.3 NFS配…

企业加密软件有哪些:企业加密软件排行榜|常用分享汇集

在当前的数字化时代&#xff0c;数据的安全性成为了企业运营中至关重要的一环。因此&#xff0c;企业加密软件的需求也日益增长。在这个竞争激烈的市场中&#xff0c;各大加密软件厂商纷纷推出自己的产品&#xff0c;以满足企业的不同需求。 首先是Ping32加密软件。Ping32文件加…

Flutter实战记录-协作开发遇到的问题

一.前言 Android项目使用了混合架构&#xff0c;部分模块使用Flutter进行开发。在电脑A上开发的项目提交到git仓库&#xff0c;电脑B拉取后进行操作&#xff0c;遇到两个问题&#xff0c;特此做一下记录&#xff1b; 二.问题A Settings file ‘D:\xxx\settings.gradle’ line…

Linux初识

1.操作系统的那点事 &#xff08;1&#xff09;结论&#xff1a;操作系统是作软硬件管理的软件&#xff1b; &#xff08;2&#xff09;计算机是操作系统&#xff0c;设备驱动&#xff0c;硬件三个相互结合发挥作用的&#xff0c;操作系统是用来管理硬件的&#xff0c;常见的…

PMBOK第七版,通往项目管理的新地图|分析2024软考光环PMP第六版培训课程

目录 文明福利 历次升级分析 2PMBOK第七版解读 1、和第六版保持一致&#xff1a;由知识体系指南和项目管理标准2部分构成。 2、区别于第六版的结构性颠覆&#xff1a;12原则、8大绩效域取代5大过程组、10大知识领域。 3PMBOK第七版VS第六版 4PMBOK第七版 就是带领我们寻找…

RabbitMQ是如何保证消息可靠性的?——Java全栈知识(16)

RabbitMQ 的消息不可靠也就是 RabbitMQ 消息丢失只会发生在以下几个方面&#xff1a; 生产者发送消息到 MQ 或者 Exchange 过程中丢失。Exchange 中的消息发送到 MQ 中丢失。消息在 MQ 或者 Exchange 中服务器宕机导致消息丢失。消息被消费者消费的过程中丢失。 大致就分为生…

数仓分层——ODS、DW、ADS

一、什么是数仓分层 数据仓库分层是一种组织和管理数据仓库的结构化方法&#xff0c;它将数据仓库划分为不同的层次或级别&#xff0c;每个层次具有特定的功能和目的。这种分层方法有助于管理数据仓库中的数据流程、数据处理和数据访问&#xff0c;并提供一种清晰的结构来支持…

51-49 CVPR 2024 | OMG:通过混合控制器实现开放词汇的运动生成

23年12月&#xff0c;腾讯联合上海科技大学联合发布OMG&#xff1a;Towards Open-vocabulary Motion Generation via Mixture of Controllers&#xff0c;从零样本开放词汇文本提示中生成引人注目的动作。这款控制器关键思想是将 pretrain-then-finetune 范式运用到文本-运动的…

self-attention 的 CUDA 实现及优化 (上)

self-attention 的 CUDA 实现及优化 (上) 导 读 self-attention 是 Transformer 中最关键、最复杂的部分&#xff0c;也是 Transformer 优化的核心环节。理解 self-attention &#xff0c;对于深入理解 Transformer 具有关键作用&#xff0c;本篇主要就围绕 self-attention 展…

Linux进程通信-信号

信号概念 信号是 Linux 进程间通信的最古老的方式之一&#xff0c;是事件发生时对进程的通知机制&#xff0c;有时也称之为软件中断&#xff0c;它是在软件层次上对中断机制的一种模拟&#xff0c;是一种异步通信的方式。信号 可以导致一个正在运行的进程被另一个正在运行的异…

解决Pyppeteer下载chromium慢或者失败的问题[INFO] Starting Chromium download.

文章目录 1.进入网址2.选择上面对应自己系统的文件夹进去3. 然后找到自己的python环境中的site-packages中pyppeteer中的chromium_downloader.py文件并打开 在首次使用Pyppeteer时需要下载chromium 1.进入网址 https://registry.npmmirror.com/binary.html?pathchromium-bro…

H5页面跳转去微信的客服页面不需要添加客服就可以直接聊天

我并没有添加客服的微信。但是页面直接跳转了进来。可以直接聊天。 首先你公司要有个企业微信。然后登陆公司的企业微信。搜索框找到应用里面的企业客服 然后你就看到了客服账号的接入连接。代码上直接写个 <div οnclick"window.location.href接入链接粘贴到这里&q…