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

文章目录

  • 概述
  • 相关概念
  • 下载和安装
  • 常见命令
  • 远程仓库介绍与码云注册创建
    • 介绍
    • 码云注册
    • 远程仓库操作
      • 关联
      • 拉取
      • 推送
      • 克隆
  • 在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.mzph.cn/bicheng/7652.shtml

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

相关文章

(✌)粤嵌—2024/5/7—除自身以外数组的乘积

代码实现&#xff1a; /*** Note: The returned array must be malloced, assume caller calls free().*/ int* productExceptSelf(int *nums, int numsSize, int *returnSize) {// 左乘积int l[numsSize];l[0] 1;for (int i 1; i < numsSize; i) {l[i] l[i - 1] * nums[…

为什么谷歌浏览器插件中不能使用xmlhttprequest(axios)

按照Chrome Extension官方说明&#xff0c;在MV3中&#xff0c;由于Service Workers的机制&#xff0c;background pages中不支持XMLHttpRequest&#xff0c;建议使用原生fetch()。由于axios使用的是XMLHttpRequest&#xff0c;因此&#xff0c;不能使用axios进行API请求。 在V…

什么是 Web 安全

什么是 Web 安全 培训、环境、资料、考证 公众号&#xff1a;Geek极安云科 网络安全群&#xff1a;624032112 网络系统管理群&#xff1a;223627079 网络建设与运维群&#xff1a;870959784 移动应用开发群&#xff1a;548238632 极安云科专注于技能提升&#xff0c;赋能 20…

Cesium学习——渲染、加载GeoJSON、调整位置

渲染概述 作者&#xff1a;当时明月在曾照彩云归 出处&#xff1a;https://www.cnblogs.com/jiujiubashiyi/p/17124717.html 1. 引言 Cesium是一款三维地球和地图可视化开源JavaScript库&#xff0c;使用WebGL来进行硬件加速图形&#xff0c;使用时不需要任何插件支持&#xf…

以中国为目标的DinodasRAT Linux后门攻击场景复现

概述 在上一篇《以中国为目标的DinodasRAT Linux后门剖析及通信解密尝试》文章中&#xff0c;笔者对DinodasRAT Linux后门的功能及通信数据包进行了简单剖析&#xff0c;实现了对DinodasRAT Linux后门心跳数据包的解密尝试。 虽然目前可对DinodasRAT Linux后门的通信数据包进…

供应商管理软件:帮助企业确定供应商的可靠性

采用单一供应商还是多家供应商&#xff0c;是企业在供应链管理领域面临的一个关键决定。 在德勤对采购专业人士进行的一项调查中&#xff0c;70% 的受访者表示&#xff0c;他们使用多家供应商来管理供应链风险。然而&#xff0c;61% 的受访者表示&#xff0c;他们也使用单一采…

SecretFlow学习指南(3)框架拆解和使用

“隐语”架构设计全貌 1.隐语框架设计思想 隐私计算是一个新兴的跨学科领域&#xff0c;涉及密码学、机器学习、数据库、硬件等多个领域。根据过去几年的实践经验&#xff0c;我们发现 ●隐私计算技术方向多样&#xff0c;不同场景下有其各自更为合适的技术解决方案 ●隐私计算…

Windows系统安装MySQL数据库详细教程

【确认本地是否安装mysql】 &#xff08;1&#xff09;按【winr】快捷键打开运行&#xff1b; &#xff08;2&#xff09;输入services.msc&#xff0c;点击【确定】&#xff1b; &#xff08;3&#xff09;在打开的服务列表中查找mysql服务&#xff0c;如果没有mysql服务&am…

麦肯锡精英高效阅读法笔记

系列文章目录 如何有效阅读一本书笔记 读懂一本书笔记 麦肯锡精英高效阅读法笔记 文章目录 系列文章目录序章 无法读书的5个理由无法读书的理由① 忙于工作&#xff0c;没时间读书无法读书的理由② 不知应该读什么无法读书的理由③ 没读完的书不断增多无法读书的理由④ 工作繁…

十进制转任意进制(以及任意进制来回转换<了解>)

十进制转任意进制&#xff1a; #include <iostream> #include <vector> #include <string> using namespace std; // 将十进制数转换为P进制形式的字符串 string toBase(int num, int base) {string result ""; // 初始化结果字符串为空wh…

《QT实用小工具·五十三》会跑走的按钮

1、概述 源码放在文章末尾 该项目实现了会逃跑的按钮&#xff1a; 两个按钮&#xff0c;一个为普通按钮&#xff0c;另一个为会跑走的按钮 鼠标移到上面时&#xff0c;立刻跑掉 针对鼠标、键盘、触屏进行优化 随机交换两个按钮的文字、偶尔钻到另一个按钮下面、鼠标移开自…

pytorch_lightning 训练教程

步骤1&#xff1a;引入必要的库 首先&#xff0c;确保你已经安装了 pytorch_lightning。pip 安装&#xff1a; pip install pytorch_lightning 然后在你的代码中导入必要的库&#xff1a; import pytorch_lightning as pl from pytorch_lightning.callbacks import ModelC…

JDBC——事务相关

JDBC中的事务提交机制 JDbC 事务机制&#xff1a; JDBC中的事务是自动提交的&#xff0c;即JDBC中DML语句执行一次&#xff0c;事务自动提交一次&#xff0c; 这是JDBC默认的事务行为&#xff0c;但是在实际的业务开发中&#xff0c;通常都是N条DML语句共同联合才能完成的&a…

2024.1.1 IntelliJ IDEA 使用记录

2024.1.1 IntelliJ IDEA 使用记录 下载设置文件编码maven 配置 插件可以中文语言包安装lombok 插件Smart Tomcat ( 根据需要安装)Smart Tomcat 配置 项目导入java 设置maven 配置 项目运行SpringBoot 项目运行tomcat 运行 (根据需要)相关依赖添加运行配置 下载 IntelliJ IDEA …

0基础学PHP有多难?

php作为web端最佳的开发语言&#xff0c;没有华而不实&#xff0c;而是经受住了时间考验&#xff0c;是一门非常值得学习的编程语言。 目前市场上各种网站、管理系统、小程序、APP等&#xff0c;基本都是使用PHP开发的&#xff0c;也侧面反映了PHP的需求以及学习的必要性&…

【Python小练】随机验证码

题目 提示输出含数字、字母的四位随机数&#xff0c;输入提示的验证码进行验证&#xff0c;验证码正确结束程序&#xff0c;验证码错误继续输入。 分析 我们可以通过random模块生成0到9的随机数&#xff0c;也可以通过生成65到90的随机数&#xff0c;将65到90的随机ASCLL码转换…

从浏览器输入url到页面加载(十)接收到网卡数据的处理

上一节我们说到数据经过漫长的旅程,从客户端,到达了服务端。然后服务端的等待连接程序被开启,与客户端建立了连接,这一节我们继续说。 目录 1 接收到的数据是什么样的? 2 网卡驱动被激活 3 达到协议栈

Nginx+uwsgi+Django实现本地服务器部署发布

目录 安装相关软件包安装python3.9Nginx安装 环境准备部署uwsgiWSGI是什么&#xff1f;步骤 遇到的问题 安装相关软件包 安装python3.9 安装依赖包 yum install libffi-devel -y yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-dev…

前端传递list(数组)类型参数,后端接收失败

一顿报错,我之前遇到的list都是Long类型 貌似用GET也是可以的,但是很奇怪一直报错 就是不可以 后来去百度 查询到可以用两种方法解决这个问题 1、拆开 传 以GET方式&#xff0c;后端GetMappingRequestParam接收。 2、以Post方式传&#xff0c;后端创建dto PostMappingReques…

React 之 Effect与事件(event)(八)

Effect&#xff08;useEffect Hook&#xff09; 在React中&#xff0c;Effect&#xff08;或者更具体地说&#xff0c;useEffect Hook&#xff09;是一个特殊的函数&#xff0c;它允许你在函数组件中执行副作用操作。这些副作用操作可能包括数据获取、手动更改DOM、订阅或取消订…