Git工具的使用

文章目录

    • Git概述
      • 本地仓库命令
      • 远程仓库命令
      • 分支操作
      • 标签操作
    • IDEA上执行Git

Git概述

一般工作流程如下:

从远程仓库中克隆 Git 资源作为本地仓库; 从本地仓库中checkout代码然后进行代码修改;
在提交本地仓库前先将代码提交到暂存区;
提交修改,提交到本地仓库;本地仓库中保存修改的各个历史版本;
在需要和团队成员协作开发时,可以将修改代码push到远程仓库

在这里插入图片描述

工作目录下的每一个文件都不外乎这两种状态:已跟踪 tracked 或 未跟踪untracked

  1. 已跟踪的文件是指那些被纳入了版本控制的文件,在上一次快照中有它们的记录,在工作一段时间后,
    它们的状态可能是未修改,已修改或已放入暂存区。简而言之,已跟踪的文件就是 Git 已经知道的文件。

  2. 工作目录中除已跟踪文件外的其它所有文件都属于未跟踪文件,它们既不存在于上次快照的记录中,也没有被放入暂存区。
    初次克隆某个仓库的时候,工作目录中的所有文件都属于已跟踪文件,并处于未修改状态,因为 Git 刚刚检出了它们, 而你尚未编辑过它们。

  3. 编辑过某些文件之后,由于自上次提交后你对它们做了修改,Git 将它们标记为已修改文件。
    在工作时,你可以选择性地将这些修改过的文件放入暂存区,然后提交所有已暂存的修改,如此反复。
    在这里插入图片描述

本地仓库命令

  • git status 查看文件状态
  • git init 初始化
  • git add 将文件的修改添加到暂存区
  • git commit 将暂存区的文件修改提交到版本库
  • git reset 将暂存区的文件取消暂存或切换到指定版本
  • git log 查看日志

例如:在git_data文件夹内新建一个文件Studebt.java

在这里插入图片描述

第一步先执行git init初始化git版本库,然后执行git add *把Student.java文件纳入了版本控制,所以显示为绿色。
执行完第一张图,再创建hello.java文件而不执行git add命令,则hello.java文件没有被纳入版本控制,会变红。
在这里插入图片描述
此时再执行git add * 命令则会把hello.java纳入版本控制。如下图:
在这里插入图片描述
git commit -m "aaa"提交命令,-m为注释, 后面引号内容为注释内容
在这里插入图片描述
此时如果修改文件中的内容:
在这里插入图片描述
执行git status指令后文件会变为modified变红状态
在这里插入图片描述
再次添加即可恢复,放到暂存区:
在这里插入图片描述
执行git log打印log日志,可以看到commit后面的版本号
在这里插入图片描述
使用reset命令可以回到版本号之前的状态
在这里插入图片描述

远程仓库命令

前面执行的命令是针对本地仓库进行操作,下面是远程仓库命令操作介绍:

  • git clone 从远程仓库克隆
  • git remote 查看远程仓库
  • git remote add shortname 添加远程仓库
  • git push 推送到远程仓库
  • git pull 从远程仓库拉取

执行git clone指令后
若要查看已经配置的远程仓库服务器,可以输入git remote 命令,它会列出每一个远程服务器的简写;
若已经克隆了远程仓库,那么至少能看到origin,这是Git克隆的仓库服务器的默认名字。

在这里插入图片描述
在刚克隆的文件夹中新建个hello.txt文档,并提交,然后使用push命令将文件推到github上面:
(需注意:在使用git push 命令将本地文件推送至github仓库时,需要进行身份认证,认证通过才可以推送)
在这里插入图片描述
在这里插入图片描述
打开github,文件存在,表示已经上传上去,其中master表示默认主分支
在这里插入图片描述
随意编辑下hello.txt文件
在这里插入图片描述
重新将text.txt加入到暂存区,提交,并推到github上面
在这里插入图片描述
在这里插入图片描述
github远程仓库上面显示内容:
在这里插入图片描述

分支操作

在进行版本控制时,使用分支意味着可以把任务从开发主线上分离开来,以免影响开发主线。同一个仓库可以有多个分支,各个分支相互独立;通过git init 命令创建本地仓库时默认会创建一个master分支。
关于分支的相关git命令,具体如下:

  • git branch 查看本地所有分支
  • git branch -r 查看远程仓库所有分支
  • git branch -a 查看本地和远程所有分支
  • git branch [name] 创建分支
  • git checkout [name] 切换分支
  • git push [shortName] [name] 推送至远程仓库分支
  • git merge [name] 合并分支

首先演示git branch、git branch -r、git branch -a
在这里插入图片描述
创建dev1、dev2分支,checkout命令是切换分支,后面括号里写什么就代表代码在那个分支上。
在这里插入图片描述
将dev1分支上传到远程仓库,dev1–>dev1是指本地dev1到远程dev1。
在这里插入图片描述
github仓库显示,此时dev2分支还没有上传到仓库,因此仓库里还没有dev2分支
在这里插入图片描述
然后给master分支上传了一个新文件;
期间遇到了这个问题:
Another git process seems to be running in this repository, e.g.
an editor opened by ‘git commit’. Please make sure all processes
are terminated then try again. If it still fails, a git process
may have crashed in this repository earlier:
remove the file manually to continue.
在这里插入图片描述
导致文件无法进行git commit操作,解决方法:找到.git下的index.lock,删除即可
在这里插入图片描述
index.lock原因分析:
在进行某些比较费时的git操作时自动生成,操作结束后自动删除,相当于一个锁定文件,目的在于防止对一个目录同时进行多个操作。有时强制关闭进行中的git操作,这个文件没有被自动删除,之后你就无法进行其他操作,必须手动删除。

再执行git commit发现上传成功;
在这里插入图片描述
将master分支上传到远程仓库
在这里插入图片描述
接下来切换到master分支,看看master分支上都有什么文件:
在这里插入图片描述
在这里插入图片描述
dev1分支上传到仓库,相比master少了test.txt文件
在这里插入图片描述
给dev2分支创建mark.txt文件,并将dev2分支上传到远程仓库
在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/94e3ce4110924a23920784925c69492c.png

将mark.txt文件添加到master分支并上传
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/e266cc21ce2942cebc8895edd4c307ea.png

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/37b3e1a0365a4447ae4f2d023708a632.png
此时如果将master分支和dev2分支合并,会发生错误,因为master分支中的mark.txt文件和dev2分支下的mark.txt文件冲突,内容不一样

若master分支中的mark.txt文件和dev2分支下的mark.txt文件内容一样则不会有冲突,能正常合并。
在这里插入图片描述
在这里插入图片描述

标签操作

Git中的标签,指的是某个分支某个特定时间点的状态。通过标签,可以很方便的切换到标记时的状态。
大家会使用这个功能来标记发布结点如v1.0、v1.1等

标签常用命令

  • git tag 列出已有的标签
  • git tag [name] 创建标签
  • git push [shortName] [name] 将标签推送至远程仓库
  • git checkout -b [branch][name] 检出标签
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    v1标签下的文件
    在这里插入图片描述
    在这里插入图片描述
    v2标签下的文件
    在这里插入图片描述
    可以看出两个标签的状态是不一样的

IDEA上执行Git

将我们在前面创建的文件导入idea中,创建两个controller类
在这里插入图片描述
第二种方式,点击图中的箭头也可以提交
在这里插入图片描述
图中也可以管理远程仓库,填写仓库的路径即可
在这里插入图片描述
下图为将idea中的项目推送到远程仓库
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

上市公司-双重差分模型手动匹配绿色企业数据及参考资料

01、数据简介 双重差分模型(DID,Differences-in-Differences)是一种用于估计某个政策或处理效果的经济计量学模型。通过双重差分模型,可以控制一些不易观察的个体特征和时间趋势,以更准确地估计政策的效应。将绿色企业…

OmniReader Pro for Mac:强大且全面的阅读工具

OmniReader Pro for Mac是一款专为Mac用户设计的强大且全面的阅读工具,它集阅读、编辑、管理等多种功能于一身,为用户提供了卓越的阅读体验。 OmniReader Pro for Mac v2.9.5激活版下载 该软件支持多种文件格式的阅读,包括PDF、Word、Excel、…

Python中PYTHONPATH与sys.path详解——看完不会用你打我

一、PYTHONPATH是什么 PYTHONPATH是python查找模块和包的路径,当导入模块时,python解释器将按顺序在PYTHONPATH下寻找。 通过sys.path可以查看PYTHONPATH的值,路径列表的第一个元素为空字符串,代表的是相对路径下的当前目录&…

特斯拉携手百度攻克在华推广辅助驾驶难题,马斯克意外访华成果显著

特斯拉近日宣布与科技巨头百度达成合作协议,共同为中国市场提供地图和导航服务,以进一步推动其辅助驾驶系统的广泛应用。这一重要进展得益于特斯拉CEO埃隆马斯克上周的意外访问。 更多消息:AI人工智能行业动态,aigc应用领域资讯 …

盼你快治好肺癌,处死360那个鬼

近日《网易首页>网易号》发表《周鸿祎突然咳嗽不停,三锥子扎不出血,网友怀疑是癌症》一文,引发网络热议不断。有网友发布一张周鸿祎朋友圈的图片显示,周鸿祎因为“咳嗽不停”在治疗。 周鸿祎在朋友圈写到“咳嗽不停&#xff0…

数之寻软件怎么样?

数之寻软件是一款功能强大的数据恢复和备份软件,以下是对其特点和功能的详细评价: 一、数据恢复方面: 高效的数据恢复能力:数之寻软件采用了先进的算法和数据恢复技术,能够快速有效地恢复丢失或损坏的数据。无论是文…

stm32f103外设学习

RTC STM32F103C8T6基于HAL库制作RTC时钟_stm32f103c8t6 rtc-CSDN博客 【STM32】HAL库 STM32CubeMX教程十三---RTC时钟_基于stm32f407hal库的rtc实时时钟-CSDN博客 方案 有三个时钟,我们选择LSE时钟(前两个时钟是受VDD影响的,而且LSI不稳定有温漂) 有…

数字孪生智慧工厂

万界星空科技数字孪生可视化平台打造的智慧工厂运营管理系统,支持融合工业大数据、物联网、人工智能等各类信息技术,整合工厂现有信息系统的数据资源,通过数字孪生技术将真实的工厂还原。 设备运检可视化 提供统一的生产运检可视化管理平台&…

Windows命令行基本命令

目录 什么是相对路径和绝对路径? 一、目录(文件夹)和文件操作 1.cd命令 用于切换目录 2.dir命令 用于显示目录和文件列表 3.md或mkdir命令 创建文件,也可以创建多级子目录 4.rd命令 用于删除目录 5.move命令 用于移动…

外包干了16天,技术倒退明显

先说情况,大专毕业,18年通过校招进入湖南某软件公司,干了接近6年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了四年的功能…

HackMyVM-Slackware

目录 信息收集 arp-scan nmap nikto whatweb WEB web信息收集 gobuster wfuzz hydra ssh连接 提权 系统信息收集 get root 信息收集 arp-scan ┌──(root㉿0x00)-[~/HackMyVM] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 08:00:27:9d:6d:7b, IPv4…

Linux提权--SUID提权内核漏洞本地用户提权

免责声明:本文仅做技术交流与学习,请不要乱搞破坏... 目录 SUID提权 漏洞成因 提权过程: 手工命令探针: 参考利用: 脚本探针: LinEnum.sh traitor linuxprivchecker等等... Linux命令的利用: find命令 利用nc反弹 利用python反弹--棱角 内核漏洞本地用…

鲲鹏华为云--OBS

文章目录 1.创建桶2.上传对象3.下载对象4.分享对象5. 删除对象6.删除桶 1.创建桶 创建桶 2.上传对象 点击创建的桶–“上传对象” 拖拽本地文件或文件夹至“上传对象”区域框内添加待上传的文件。 也可以通过单击“上传对象”区域框内的“添加文件”,选择本地…

智慧校园建设新取向与新规范

通过对智慧校园建设与应用的相关文献进行研究以及对已发布的智慧校园建设规范标准进行内容分析,智慧校园建设呈现出新的价值取向和规范。 落实立德树人根本任务 党的十九大报告中指出,“要全面贯彻党的教育方针,落实立德树人根本任务&#xf…

二叉树的遍历算法

目录 1.二叉树结构 2.广度优先搜索二叉树(迭代算法) 3.深度优先搜索二叉树(递归算法) 1.二叉树结构 一个父结点,至多可以连接左右两个子节点 Java构造树结构——其实是 自定义树结点类型 public class TreeNode {in…

【笔记1】从零开始做一个男头的流程(超级详细)

目录 大体 眼窝 鼻子 脖子 耳朵 嘴巴1 颧骨 嘴巴2 眼睛 头 开始细化 大体 眼窝 嘴巴 鼻子 大体 注意!!先整体后局部,一开始不要加太多的线,尽量先用最少的线调整出一个大体的结构。 1.准备好参考图,在…

新一代大数据平台,为什么选择中国移动梧桐数据库?

个人介绍:艺名司镜233,是中国移动梧桐数据库研发团队成员,从事相关的技术开发近5年了。最让我觉得自豪的不是在研发这款数据库,而是我们用代码,切实地帮助企业解决数据的困扰,切实地解决社会的问题。 本篇文…

MySQL Binlog 闪回与分析

文章目录 前言1. 修改 event 实现闪回1.1 binlog 结构1.2 闪回案例1.3 方法总结 2. 解析文本闪回2.1 mysqlbinlog2.2 闪回案例2.3 方法总结 3. 在线订阅闪回3.1 mysql-replication3.2 binlog2sql3.3 方法总结 4. Binlog 分析方法4.1 分析场景4.2 辅助定位事务4.3 方法总结 5. 平…

二维码门楼牌管理应用平台:智慧城市的新引擎

文章目录 前言一、数据管理:打造智慧城市的数据基石二、数据应用:推动城市管理的智能化升级三、展望未来:构建更加智慧的城市管理体系 前言 随着城市化的快速推进,城市管理面临着前所未有的挑战。二维码门楼牌管理应用平台作为一…

【SpringBoot】Spring Boot自动配置概览

目录 背景自动装配/自动配置springboot是如何实现自动配置的核心注解AutoConfigurationImportSelector 类的继承体系Spring Boot 提供的条件注解示例注意版本 背景 没有 Spring Boot 的情况下,我们引入第三方依赖之后,需要手动配置。 比如需要手动将引入…