当前位置: 首页 > news >正文

【学习笔记】 - GIT的基本操作,IDEA接入GIT以及上传hub

用github蛮多,但git没怎么用,看着视频对着写点笔记以及操作

一、GIT文件的三种状态和模式

已提交(committed)        已提交表示数据已经安全的保存在本地数据库中。

已修改(modified)        已修改表示修改了文件,但还没保存到数据库中。

已暂存(staged)        暂存表示对一个已修改文件的当前版本做了标记使之包含在下次提交的快照中。(相当于buffer)

所以会有三个工作区域


工作区        简单的理解为在电脑里能看到的目录,比如自己创建的本地项目目录

暂存区        Git的版本库里存了很多东西,其中最重要的就是称为stage (或者叫index) 的暂存区,还有Git自动建的第一个分支master, 以及指向master的一个指针叫HEAD。

git仓库区        工作区有一个隐藏目录git,这个不算工作区,而是Git的版本库。

二、创建版本库并提交文件

新建一个git文件,并初始化,这个即git工作区,.git即git仓库,隐藏目录

git add添加某个文件到缓冲区(暂存区)

git status查看属性 

git commit -m 'git版本初始化以及文件提交操作' // /m后为提交的解释

git log 查看日志 

三、时光穿梭机

1.提交文件与撤销文件

        企业中在多人的项目开发环境下,使用Git版本控制工具对项目版本进行管理时,通常会对项目不同版本的文件进行查看,项目历史版本,未来版本的切换操作,对于一个项目开发人员,此时对于Git的这些基本命令操作就成为了一项基本技能。

1.提交到暂存区

修改git01.txt文件,可以查看属性 提示暂为被加到缓冲区

添加到缓冲区

.

commit提交

如果不添加到缓冲区直接commit,会无法添加成功。

差异比较说明

---表示变动前的文件

+++:表示变动后的文件

变动的位置用两个@作为起首和结束

@@-1,2 +1,3@@:减号表示第一个文件,"1"表示第1行,"2"表示连续2行。同样的,"+1,3"表示变动后,成为第二个文件从第1行开始的连续3行。

1.撤销暂存区文件

已经添加到暂存区的文件可以使用

git reset HEAD撤销

2.版本回退

 简化操作,显示少页的log

^表示回退到上一个版本

^^表示回退到上两个版本

git reset --hard HEAD~1//num表示回退的多少个版本

如果想跳到前面的版本,使用

git reset --hard b4740

如果回退到前面的版本,但是已经看不到哈希字符串了

可以使用git reflog

3.文件删除

        在GIt中,删除文件同样是一个修改操作, 即在Git世界中,Git仅仅关注文件是否被修改(文件添加,更新,删除)

在工作区添加新文件git02.txt并删除,如果是工作区的删除,但是已经上传到本地仓库了,所以可以误删恢复

        

git checkout -- git02.txt

注意如果本地仓库没有,那不能恢复的

如果想彻底删除使用

git rm git02.txt 会将工作区和仓库区的都删除

使用git ls-files 查看仓库文件,不是工作区的

四、远程仓库GITHUB(分布式版本控制)

        Git是一个分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上,截止目前,并没有看到分布式的环境,因为以上的操作都在在本地发生的,对于Gt除了前面提到的本地版本库外,Git 支持远程仓库的托管服务即使用者可以将本地版本库中的文件托管到远程服务品进行存储,这样就极大的方便开发,无论你走到哪,只要你的机器能够联网,就可以通过远程的仓库地址得到一份相同的项目库文件,并且下载到本地的文件版本记录与远程文件版本保持一致,井且可以很方便的实现多人协同开发操作。

        对于Git远程仓库GitHub: Let’s build from here · GitHub是比较知名的一一个,目前已被微软收购,而国内比较知名的当属码云官方了.当然除了这些远程仓库外,在公司,有的公司处于安全考虑,可能会自己搭建一套Git服务区来自Git的远程仓库,对于内部仓库会有专门人员来进行维护操作。

这里以当下比较流行的GiHub仓库来介绍Git远程仓库基本操作与使用。

1.克隆远程项目到本地

找到对应的仓库点击code,有一段git的下载

在目标目录下右键打开控制台 使用

git clone 网址

2.本地库推送到远程仓库

或者在命令行上创建一个新的存储库

echo "# gitTest" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/yinhai1114/gitTest.git
git push -u origin main

或者从命令行推送一个现有的存储库

git remote add origin https://github.com/yinhai1114/gitTest.git
git branch -M main
git push -u origin main 

GitHub - yinhai1114/gitTest: 推送本地仓库到远程仓库

使用ssh推送

通过ssh-key将本地文件上传指定github仓库 - 知乎

五、本地分支操作

1.本地分支合并,重命名,删除

        开发企业项目中在使用Git或者其他类似版本控制软件对项目版本进行管理时,多人合作的项目在开发时通常不会直接在主master上进行操作,而是重新开辟新的分支,在新的分支上进行开发调试等操作,当项目调试通过时才会将分支项目的代码合并到主干中,这是在实战中比较好的一种策略,特别是多人协同开发一个项目的情况下尤其明显。

Git 对于分支操作提供了一下基本命令

拉取分支 git check -b left01

对分支进行操作不会影响主干main

合并分支时如果两个分支都被修改,那么会需要人为接入进行合并参考下列

git merge合并分支代码# Please enter a commit message to explain why this merge is necessar У git退出编辑信息_少吃一口都不行的博客-CSDN博客

2.分支的push与pull操作

3.冲突内容

分为本地冲突和多人协同冲突,本地冲突需要改变不相同的内容,保留某个或者合并

多人冲突 解决方法需要每次先pull拉取代码,然后查看不相同的内容进行修改,然后在push

六、标签管理

七、IDEA下git的基本操作

setting内搜索git,添加文件路径,点击test测试git是否已经找到,出现版本号即成功

github添加远程仓库

获取仓库 使用在新页面checkout for version或者在已有的项目内new -- new project form version control

相关文章:

【学习笔记】 - GIT的基本操作,IDEA接入GIT以及上传hub

用github蛮多,但git没怎么用,看着视频对着写点笔记以及操作 一、GIT文件的三种状态和模式 已提交(committed) 已提交表示数据已经安全的保存在本地数据库中。 已修改(modified) 已修改表示修改了文件,但还没保存到数据库中。…...

Antd React Form.Item内部是自定义组件怎么自定义返回值

在线演示https://stackblitz.com/edit/stackblitz-starters-xwtwyz?filesrc%2FSelfTreeSelect.tsx 需求 当我们点击提交,需要返回用户名和选中树的id信息,但是,我不关要返回树的id信息,还需要返回选中树的名称 //默认返回的 {userName:梦洁,treeInfo:leaf1-value } //但是需…...

2023最新ACL大模型论文分类汇总(有代码的)

1 大模型文化道德 Knowledge of cultural moral norms in large language models url:https://aclanthology.org/2023.acl-long.26/code:https://github.com/AidaRamezani/cultural_inference 2 长文本推理 Open-ended Long Text Generation via Mask…...

Java版 招投标系统简介 招投标系统源码 java招投标系统 招投标系统功能设计

功能描述 1、门户管理:所有用户可在门户页面查看所有的公告信息及相关的通知信息。主要板块包含:招标公告、非招标公告、系统通知、政策法规。 2、立项管理:企业用户可对需要采购的项目进行立项申请,并提交审批,查看所…...

Ubuntu 22.04源码安装cmake 3.27.7

安装参考博客是《ubuntu安装cmake》和《Ubuntu 安装CMake》。 https://cmake.org/download是cmake官网下载的网址。 sudo wget -c https://github.com/Kitware/CMake/releases/download/v3.27.7/cmake-3.27.7.tar.gz可以下载源码,最后显示‘cmake-3.27.7.tar.gz’…...

无人地磅称重系统|自助过磅 料仓联动 自助卸料

上海思伟无人地磅系统 自助过磅、 自助卸料 、料仓联动 智能、省人、安全 无人监管过磅 对地磅及其相关的所有硬件进行配置和管理; 支持红外、道闸、车牌识别、AI分析、拍照存档、LED语音播报一体机等设备; 实现稳定可靠的无人监管称重功能&#xf…...

冥想第九百七十三天

1.今天周六,很冷的天,上午上了一上午的日语课。 2.下午去看了朋友刚出生的孩子。 3.充实的一天。感谢父母,感谢朋友,感谢家人,感谢不断进步的自己....

ROS 学习应用篇(三)话题Topic学习之自定义话题消息的类型的定义与调用

自定义消息类型的定义 Person.msg文件的定义(数据接口文件的定义) 创建msg文件 首先在功能包下新建msg文件夹,接着在该文件夹下创建文件。 定义msg文件内容 一个消息最重要的就是数据结构类型。这就需要引入一个msg文件,用于…...

财税服务展示预约小程序的作用是什么

财税财政往往困扰着很多公司,尤其是公司里没有相应职员或工作压力大的情况下,不少商家就会寻找代理记账、审计服务、会计代理等服务的机构。 对财政服务代理机构(会计公司)来说,市场企业多而广,理论上来说…...

RT-Thread提供的网络世界入口 -net组件

作为一款在RTOS领域对网络支持很丰富的RT-Thread,对设备联网功能的支持的工具就是net组件。 位于/rt-thread/components/net路劲下,作为一款基础组件,env与Studio的工程配置项界面的配置项都依赖该目录下的Kconfig。 我们对网络功能的选择&am…...

分享一些有趣的MATLAB提示音(代码可直接复制)

先做一个声明:文章是由我的个人公众号中的推送直接复制粘贴而来,因此对智能优化算法感兴趣的朋友,可关注我的个人公众号:启发式算法讨论。我会不定期在公众号里分享不同的智能优化算法,经典的,或者是近几年…...

软件测试|selenium执行js脚本

JavaScript是运行在客户端(浏览器)和服务器端的脚本语言,允许将静态网页转换为交互式网页。可以通过 Python Selenium WebDriver 执行 JavaScript 语句,在Web页面中进行js交互。那么js能做的事,Selenium应该大部分也能…...

【源码复现】图神经网络之PPNP/APPNH

目录 1、论文简介2、论文核心介绍2.1、现有方法局限2.2、PageRank&Personalized PageRank2.3、PPNP&APPNP 3、源码复现3.1、模型总体框架3.2、PPNP3.3、APPNP3.4、MLP(两层) 1、论文简介 论文题目——《PREDICT THEN PROPAGATE: GRAPH NEURAL NETWORKS MEET PERSONALI…...

【算法与数据结构】131、LeetCode分割回文串

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析:本题仍然使用回溯算法的一般结构。加入了一个判断是否是回文串的函数,利用起始和终止索引进…...

网络编程学习笔记

参考: 套接字通信部分 《TCP/IP 网络编程》以及《TCP/IP网络编程》学习笔记 socket 编程 1. 字节序 字节序,顾名思义字节的顺序,就是大于一个字节类型的数据在内存中的存放顺序,也就是说对于单字符来说是没有字节序问题的&…...

腾讯待办停运后怎么办呢?导出的ics文件怎么打开查看

待办类工具在日常工作中的应用是比较广泛的,很多人会选择使用待办软件记录备忘事项,其中一些提醒类的工具是比较广泛使用的。腾讯待办属于一款待办事项和日程管理工具,它通常是以微信小程序的形式,为大家提供时间管理规划&#xf…...

家长群如何发成绩?

老师们是否经常被家长们追问:“老师,我孩子的成绩出来了吗?”、“老师,我孩子考了多少分?”等等。要想解决这个问题,看完这篇文章你就可以让家长们能够自助查询孩子的成绩了。 一、什么是成绩查询系统&…...

数组区域检索的优化 --- 分块,线段树,树状数组

思考 首先让我们来思考一个问题,给定一个数组,和left与right的值,让你求这个数组中left到right之间元素的和,你会怎么计算?最简单的当然是遍历。如果有人问你这个问题的时候,他决对是会让你优化的&#xff…...

若依侧边栏添加计数标记效果

2023.11.13今天我学习了如何对若依的侧边栏添加技术标记的效果&#xff0c;如图&#xff1a; 我们需要用到两个页面&#xff1a; 先说子组件实现计数标记效果 1.item.vue <script> export default {name: MenuItem,functional: true,props: {icon: {type: String,defau…...

WebSocket技术解析:实现Web实时双向通信的利器

当今互联网的发展中&#xff0c;实时性成为了越来越重要的需求&#xff0c;特别是在Web应用程序中。传统的HTTP协议在处理实时性方面存在一些局限性&#xff0c;因此WebSocket技术的出现填补了这一空白。WebSocket是一种在单个TCP连接上进行全双工通信的协议&#xff0c;它允许…...

XCTF-web-easyupload

试了试php&#xff0c;php7&#xff0c;pht&#xff0c;phtml等&#xff0c;都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接&#xff0c;得到flag...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下&#xff0c;越来越多的求职者将目光投向了日本及中日双语岗位。但是&#xff0c;一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧&#xff1f;面对生疏的日语交流环境&#xff0c;即便提前恶补了…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术&#xff0c;说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号&#xff08;调制&#xff09; 把信息从信号中抽取出来&am…...

优选算法第十二讲:队列 + 宽搜 优先级队列

优选算法第十二讲&#xff1a;队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...

ABAP设计模式之---“简单设计原则(Simple Design)”

“Simple Design”&#xff08;简单设计&#xff09;是软件开发中的一个重要理念&#xff0c;倡导以最简单的方式实现软件功能&#xff0c;以确保代码清晰易懂、易维护&#xff0c;并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计&#xff0c;遵循“让事情保…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

【 java 虚拟机知识 第一篇 】

目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...

抽象类和接口(全)

一、抽象类 1.概念&#xff1a;如果⼀个类中没有包含⾜够的信息来描绘⼀个具体的对象&#xff0c;这样的类就是抽象类。 像是没有实际⼯作的⽅法,我们可以把它设计成⼀个抽象⽅法&#xff0c;包含抽象⽅法的类我们称为抽象类。 2.语法 在Java中&#xff0c;⼀个类如果被 abs…...