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

news2024/9/20 8:09:02

用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

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

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

相关文章

速锐得HJ1239车载终端TBOX柴油商用车远程排放管理工况模型应用

其实排放模型,并不是生涩难懂的问题,首先我们准备好一台TBOX,比如无论是海康、华为、速锐得、博世、联电、LG、西门子都可以做到,在满足TBOX具备4G物联网2路CAN支持远程升级控车,支持国四国五国六车型,带定…

Kafka简单汇总

Kafka的结构图 多个Parttion共同组成这个topic的所有消息。每个consumer都属于一个consumer group,每条消息只能被consumer group中的一个Consumer消费, 但可以被多个consumer group消费。即组间数据是共享的,组内数据是竞争的。二、消费模型…

【学习辅助】Axure手机时间管理APP原型,告别手机控番茄任务模板

作品概况 页面数量:共 30 页 兼容软件:Axure RP 9/10,不支持低版本 应用领域:时间管理、系统工具 作品申明:页面内容仅用于功能演示,无实际功能 作品特色 本品为「手机时间管理」APP原型,…

【华为OD题库-015】报文重排序-Java

题目 对报文进行重传和重排序是常用的可靠性机制&#xff0c;重传缓冲区内有一定数量的子报文&#xff0c;每个子报文在原始报文中的顺序已知&#xff0c;现在需要恢复出原始报文。 输入描述 输入第一行为N,表示子报文的个数&#xff0c;0<N < 1000。 输入第二行为N个子报…

深入理解Kafka3.6.0的核心概念,搭建与使用

Kafka是最初由Linkedin公司开发&#xff0c;是一个分布式、支持分区的&#xff08;partition&#xff09;、多副本的&#xff08;replica&#xff09;&#xff0c;基于zookeeper协调的分布式消息系统&#xff0c;它的最大的特性就是可以实时的处理大量数据以满足各种需求场景&a…

卫星位置解算

武大GPS原理及应用 1.导航电文

探秘 Vue 数据绑定:为何 data 必须是函数而非对象?

&#x1f3ac; 江城开朗的豌豆&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 &#x1f4dd; 个人网站 :《 江城开朗的豌豆&#x1fadb; 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! 目录 ⭐ 专栏简介 &#x1f4d8; 文章引言 一、实…

削峰填谷:居民小区电动汽车有序充电策略研究

摘 要&#xff1a;针对电动汽车在居民小区无序充电对电网系统产生严重隐患及充电间时过长问题&#xff0c;提出一种采用延迟充电的电动汽车有序充电控制策略&#xff0c;并在分析国内外电动汽车有序充电的研究现状后&#xff0c;设计了居民小区电动汽车有序充电策略的总体框架。…

双十一大促已过,虾皮、Lazada年底如何通过测评补单打造搜索排名

双十一大促已过&#xff0c;有人欢喜有人忧&#xff0c;不管怎么样&#xff0c;年底的这波旺季还是要好好把握的。 如何提升虾皮搜索排名 1、标题关键词匹配度 Shopee、Lazada的排名规则主要是根据用户搜索时输入的关键字和卖家的商品标题、描述等是否相匹配来进行排名&…

独立站商品信息是怎么获取的呢

独立站商品信息的获取主要通过以下几种方式&#xff1a; 人工收集&#xff1a;卖家可以通过在各个电商平台、网站等渠道进行手动搜索和收集商品信息&#xff0c;包括商品名称、价格、描述、图片等&#xff0c;然后将其导入到自己的独立站中。使用采集工具&#xff1a;目前市面…

解决 Django 开发中的环境配置问题:Windows 系统下的实战指南20231113

简介&#xff1a; 在本文中&#xff0c;我想分享一下我最近在 Windows 环境下进行 Django 开发时遇到的一系列环境配置问题&#xff0c;以及我是如何一步步解决这些问题的。我的目标是为那些可能遇到类似困难的 Django 开发者提供一些指导和帮助。 问题描述&#xff1a; 最近…

Vite - 配置 - 环境变量的配置详解

什么是环境变量 会根据当前的代码环境 产生值的变换的变量 就叫做 环境变量。简单来说&#xff0c;一个名为 APP_NAME 的变量&#xff0c; 在开发环境下&#xff0c;我们希望它的值是 ”测试的名称“&#xff1b; 在正式环境下&#xff0c;我们希望它的值是 ”正式的名称“。这…

【LeetCode】每日一题 2023_11_13 区域和检索 - 数组可修改(树状数组/线段树)

文章目录 刷题前唠嗑题目&#xff1a;区域和检索 - 数组可修改题目描述代码与解题思路偷看大佬题解 结语 刷题前唠嗑 LeetCode? 启动&#xff01;&#xff01;&#xff01; 今天是中等题&#xff0c;貌似挺简单的&#xff0c;先试试水 题目&#xff1a;区域和检索 - 数组可修…

2012年7月2日 Go生态洞察:Google I/O 2012的Go视频精选

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

vue3配置环境变量,小白简单易学

环境变量的意义就是防止我们更新打包的时候写错变量&#xff0c;合并代码这些一系列问题 首先看看效果 左边是本地测试环境&#xff0c;右边是打包后的生产环境&#xff0c;写这个环境变量的好处就是&#xff0c;你在本地开发的时候变量随便改&#xff0c;不会影响生产环境&am…

“大学生”返乡投身乡村建设,直播电商成为返乡创业新潮流!

数字乡村建设是新时代乡村振兴的必经之路&#xff0c;它是伴随网络化、信息化和数字化在农业农村经济社会发展中的应用&#xff0c;以及农民现代信息技能的提高而内生的农业农村现代化发展和转型进程&#xff0c;既是乡村振兴的战略方向&#xff0c;也是建设数字中国的重要内容…

基于DBO算法的WSN节点覆盖优化

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

C++编程爬虫代码全过程分享

以下是使用C编写一个爬虫程序的基本步骤和代码示例&#xff1a; 1、首先&#xff0c;我们需要包含必要的库文件。在这个例子中&#xff0c;我们将使用<iostream>、<string>和<curlpp/cURLpp.hpp>库。 #include <iostream> #include <string> #i…

shell 语法介绍

大家好&#xff0c;我是蓝胖子&#xff0c;在日常开发中或多或少都会接触到shell脚本&#xff0c;可以说会shell脚本是一位后端开发的基本功&#xff0c;今天我将会花上一篇文章总结下常见的shell的语法&#xff0c;学完本篇&#xff0c;相信简单的shell脚本就能够看懂了&#…

世微 降压恒流 12V 5A 一切一双灯 LED汽车大灯驱动方案 AP5191

AP5191是一款PWM工作模式,高效率、外围简 单、内置功率MOS管&#xff0c;适用于4.5-150V输入的高 精度降压LED恒流驱动芯片。输出功率150W&#xff0c; 电流6A。 AP5191可实现线性调光和PWM调光&#xff0c;线性调 光脚有效电压范围0.55-2.6V. AP5191 工作频率可以通过RT 外部…