Git工具的使用

news2024/11/24 17:16:39

文章目录

    • 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中的项目推送到远程仓库
在这里插入图片描述

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

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

相关文章

利用Spring Boot后端与Vue前端技术构建现代化电商平台

作者介绍:✌️大厂全栈码农|毕设实战开发,专注于大学生项目实战开发、讲解和毕业答疑辅导。 🍅获取源码联系方式请查看文末🍅 推荐订阅精彩专栏 👇🏻 避免错过下次更新 Springboot项目精选实战案例 更多项目…

python基础——正则表达式

📝前言: 这篇文章主要想讲解一下python中的正则表达式: 1,什么是正则表达式 2,re模块三匹配 3,元字符匹配 4,具体示例 🎬个人简介:努力学习ing 📋个人专栏&am…

【C++】STL-vector的使用

目录 1、什么是vector? 2、vector的使用 2.1 vector的定义 ​编辑 2.2 遍历修改数据 2.3 迭代器 2.4 vector空间增长问题 2.5 vector的增删查改 3、迭代器失效 3.1 会引起其底层空间改变的操作,都有可能是迭代器失效 3.2 指定位置元素的删除操…

【Linux】如何进行用户之间的切换——指令su

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …

消费新纪元:揭秘消费增值模式,让你的每一分钱都“钱生钱”

你是否对传统消费方式有所不满,认为它只停留在物质层面的交换,缺乏更深层次的附加价值?那么,我要为你揭晓一种新颖的消费模式——消费增值,它将为你的消费观念带来全新的变革,让你的每一笔消费都充满无限可…

CLIP图生文

CLIP模型本身并不是图生文的,CLIP模型用来做图片和文本描述的匹配。 但它可以与其他技术结合使用来实现这一点,以下是两种常见的方法: CLIP作为文本灵感检索系统: 这种方法利用了 CLIP 在寻找图像和文本之间相似表示方面的优势。…

关于豆瓣电影数据抓取以及可视化

首先我们可以先了解以下网络爬虫的定义: 爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。它可以在互联网上自动抓取网页内容,将这些信息存储起来。爬虫可以抓取网站的所有网页,从而获取对于我们有价值的信…

跨界客户服务:拓展服务边界,创造更多价值

在日益激烈的市场竞争中,企业如何突破传统服务模式的限制,创造更多价值,已成为业界关注的焦点。跨界客户服务作为一种新兴服务模式,正逐渐受到企业的青睐。通过跨界合作,企业可以拓展服务边界,提供更加多元…

数据治理和数据管理 傻傻分不清楚?

互联网时代,数据,这一无形资产,已成为现代企业的核心竞争力。如何高效地管理和利用数据,成为企业关注的焦点。在这个过程中,数据治理(Data Governance)和数据管理(Data Management&a…

[SpringBoot] JWT令牌——登录校验

JWT(JSON Web Token)是一种用于在网络应用之间传递信息的开放标准(RFC 7519)。它由三部分组成:头部(header)、载荷(payload)和签名(signature)。J…

android 去除桌面谷歌搜索框

注: 本文只是博主学习记录分享,仅供参考。如有错误请指出来,谢谢! 一、问题描述 去除 android 系统桌面谷歌搜索栏,前后对比如下图: 系统版本:android12 平台:rk3568 二、…

DNS域名系统 | unbound

目录 DNS 命名空间和域名结构 DNS的命名空间的结构: 域名服务器的分类: ​编辑 DNS 资源记录 常见type: DNS报文结构 请求报文: 响应报文: 解析类型 递归查询 迭代查询 DNS劫持 DNS劫持方法: 防御措施 DNS服务部署…

【Java EE】 文件IO的使用以及流操作

˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如…

C++:const成员和取地址操作符

目录 一、const成员 二、取地址及const取地址操作符重载 一、const成员 将const修饰的“成员函数”称之为const成员函数,const修饰类成员函数,实际修饰该成员函数 隐含的this指针,表明在该成员函数中不能对类的任何成员进行修改。 注&…

【JAVA】PO、VO、DAO、BO、DTO、POJO你分得清吗?

在Java开发中,PO、VO、DAO、BO、DTO、POJO这些词汇是比较常见的,每个术语都有其特定的含义和用途。下面是它们的具体区别: 名称简要概况用途和特定PO (Persistence Object) 持…

PDF 书签制作与调整 从可编辑、不可编辑 PDF 文档创建书签的方法

本文是对以前发表的旧文拆分,因为原文主题太多,过长,特另起一篇分述。 第一部分 由可编辑 PDF 文档创建书签 方法 1. Adobe Acrobat Pro autobookmark AutoBookmark 是一个可用于 Adobe Acrobat 自动生成书签的插件。 官方下载地址&…

手拉手安装Kafka2.13发送和消费消息

Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。 Kafka启动方式有Zookeeper和Kraft,两种方式只能选择其中一种启动,不能同时使用。 Kafka下载https://downloads.apache.org/kafka/3.7.0/kafka_2.…

静态链接lib库使用

lib库实际上分为两种,一种是静态链接lib库或者叫做静态lib库,另一种叫做动态链接库dll库的lib导入库或称为lib导入库。这两个库是不一样的,很多人都分不清楚,很容易混淆。 第一种是静态lib,包含了所有的代码实现的&am…

回归预测 | Matlab实现SSA-ESN基于麻雀搜索算法优化回声状态网络的多输入单输出回归预测

回归预测 | Matlab实现SSA-ESN基于麻雀搜索算法优化回声状态网络的多输入单输出回归预测 目录 回归预测 | Matlab实现SSA-ESN基于麻雀搜索算法优化回声状态网络的多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现SSA-ESN基于麻雀搜索算法…

2024/4/26 C++day4

1在Complex类的基础上&#xff0c;完成^&#xff0c;>>&#xff0c;<<,~运算符的重载 #include <iostream> using namespace std; class Complex {int rel; //实部int vir; //虚部 public:Complex(){}Complex(int rel,int vir):rel(rel),vir(vir){}vo…