学习【Git项目管理工具】这一篇就够了

目录

  • 1. Git概述
  • 2. Git代码托管服务
  • 3. Git常用命令
    • 3-1. Git全局配置
      • 设置用户信息
      • 查看配置信息
    • 3-2. 获取Git仓库
      • 本地初始化仓库
      • 克隆远程仓库
    • 3-3. 基本概念
      • 工作区文件状态
    • 3-4. 本地仓库操作
      • git reset 操作
    • 3-5. 远程仓库操作
      • 查看远程仓库
      • 添加远程仓库
      • 推送远程仓库
      • 拉取远程仓库
    • 3-6. 分支操作
      • 分支命令
    • 3-7. 标签操作
      • 标签命令
  • 4. 在IDEA中使用Git

1. Git概述

Git是一个分布式版本控制工具,主要用于管理开发过程中的源代码文件(Java类、ml文件、html页面等),在软件开发过程中被广泛使用。

学完Git之后能做什么?

  • 代码回溯
  • 版本切换
  • 多人协作
  • 远程备份

Git仓库分为两种:

  1. 本地仓库:开发人员自己电脑的 Git 仓库
  2. 远程仓库:远程服务器上的 Git 仓库

在这里插入图片描述

commit: 提交,将本地文件和版本信息保存到本地仓库
push: 推送,将本地仓库文件和版本信息上传到远程仓库
pu11: 拉取,将远程仓库文件和版本信息下载到本地仓库

2. Git代码托管服务

Git 中存在两种类型的仓库,即本地仓库远程仓库。那么我们如何搭建Git远程仓库呢?

我们可以借助互联网上提供的一些代码托管服务来实现,其中比较常用的有GitHub码云GitLab等。

  • GitHub(地址:https://github.com/),是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub
  • 码云(地址:https://gitee.com/),是国内的一个代码托管平台,由于服务器在国内,所以相比于GitHub,码云速度会更快
  • GitLab(地址:https://about.gitlab.com/),是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务
  • BitBucket(地址:https://bitbucket.org/),是一家源代码托管网站,采用Mercurial和Git作为分布式版本控制系统,同时提供商业计划和免费账户

3. Git常用命令

3-1. Git全局配置

当安装Git后首先要做的事情是设置用户名称email地址。这是非常重要的,因为每次Git提交都会使用该用户信息。

在Git命令行中执行下面命令:

设置用户信息

git config --global user.name "iteng"
git config --global user.email "iteng@qq.com"

查看配置信息

git config --list

注意:上面设置的user.nameuser.email并不是我们在注册码云账号时使用的用户名和邮箱,此处可以任意设置,只是用户标识。

3-2. 获取Git仓库

要使用 Git 对我们的代码进行版本控制,首先需要获得 Git 仓库。获取 Git 仓库通常有两种方式:

  1. 在本地初始化一个 Git 仓库
  2. 从远程仓库克隆

本地初始化仓库

执行步骤如下:

  1. 在任意目录下创建一个空目录作为我们的本地 Git 仓库
  2. 进入这个目录中,点击右键打开Git bash窗口
  3. 执行命令git init
  4. 如果在当前目录中看到.git文件夹(此文件夹为隐藏文件夹)则说明Git仓库创建成功

克隆远程仓库

可以通过 Git 提供的命令从远程仓库进行克隆,将远程仓库克隆到本地

git clone 远程Git仓库地址

3-3. 基本概念

为了更好的学习Git,我们需要了解Git相关的一些概念,这些概念在后面的学习中会经常提到

工作区: 包含.git文件夹的目录就是工作区,也称为工作目录,主要用于存放开发的代码
暂存区: .git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存修改文件的地方
版本库: 前面看到的.git隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等

在这里插入图片描述

工作区文件状态

Git 工作区中的文件存在两种状态:

  • untracked 未跟踪(未被纳入版本控制,未git add
  • tracked 已跟踪(被纳入版本控制,已git add
    1. Unmodified 未修改状态(已git commit,之后无修改
    2. Modified 已修改状态(已git commit,之后有修改
    3. Staged 已暂存状态(未git commit

注意:这些文件的状态会随着我们执行Git的命令发生变化

3-4. 本地仓库操作

本地仓库常用命令如下:

命令说明
git status查看文件状态
git add将文件加入暂存区
git reset将暂存区的文件取消暂存或者是切换到指定版本
git commit将暂存区的文件提交到版本库
git log查看日志

git reset 操作

取消暂存区的一个文件

git reset test.java

切换到指定 commit 版本

git reset --hard 版本号

3-5. 远程仓库操作

有关远程仓库的一些操作,具体包括:

命令说明
git remote查看远程仓库
git remote add添加远程仓库
git clone从远程仓库克隆
git pull从远程仓库拉取
git push推送到远程仓库

查看远程仓库

如果想查看已经配置的远程仓库服务器,可以运行git remote命令,它会列出每一个远程服务器的简写。
如果已经克隆了远程仓库,那么至少应该能看到origin,这是 Git 克隆的仓库服务器的默认名字
如果想看到远程仓库的详细信息,命令:git remote -v

在这里插入图片描述

添加远程仓库

一个本地仓库对应一个远程仓库

命令:

git remote add 远程仓库别名(例如:origin) url

推送远程仓库

将本地仓库内容推送到远程仓库

命令:

git push 远程仓库名 分支名

拉取远程仓库

将远程仓库文件拉取合并到本地

命令:

git poll 远程仓库名 分支名

注意:如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报错(fatal:refusing to merge unrelated histories

解决此问题可以在git pull命令后加入参数--allow-unrelated-histories

3-6. 分支操作

分支是Git使用过程中非常重要的概念。使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。

同一个仓库可以有多个分支,各个分支相互独立,互不干扰。

通过git init命令创建本地仓库时默认会创建一个master分支。

在这里插入图片描述

分支命令

命令说明
git branch查看所有本地分支
git branch name创建分支
git checkout name切换分支
git push 远程仓库名 分支名推送至远程仓库分支
git merge name合并name分支到当前分支
git branch -d name删除分支
git branch -r列出所有远程分支
git branch -a列出所有本地分支和远程分支

3-7. 标签操作

Git中的标签,指的是某个分支某个特定时间点的状态。通过标签,可以很方便的切换到标记时的状态。

比较有代表性的是人们会使用这个功能来标记发布结点(v1.0、v1.2等)。下面是PageHelperl的标签

在这里插入图片描述

标签命令

命令说明
git tag列出已有的标签
git tag name创建标签
git push 远程仓库名 标签名将标签推送至远程仓库
git checkout -b 分支名 标签名检出标签到指定分支

4. 在IDEA中使用Git

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

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

相关文章

Gorm 应用开发时区问题与unique唯一索引字段数据冲突问题

文章目录 一、定义表模型时区问题1.1 time.Time 与int641.2 优势 二、unique唯一索引字段数据冲突问题 一、定义表模型时区问题 1.1 time.Time 与int64 一般情况下,我们在定义表模型的时候,会使用time.Time,但是会根据当前时间存储。返回给…

ARM多核调度器DSU

1. 背景 从A75开始,ARM提出了一个新的多核心管理系统单元,叫做DSU(DynamIQ Shared Unit)。DSU的核心功能是控制CPU内核,使其成簇Cluster使用,簇内每一个核心可以单独开关、调整频率/电压,能效表现更佳,甚至…

二、VS2019编译的VTK9.0.0 + Qt 5.14.2 环境测试

1. 使用CMake VS2019 编译vtk 9.0.0 时,需要启用支持Qt开关、如下图 如果不会编译的可以参见我的这篇文章: 一、VTK 9.0.0 编译安装步骤 VS2019 CMake3.26.0-CSDN博客 打开Qt5.14.2 ,创建Qt Widget 项目: 构建设置选择 MSVC2017 64bit pro 项目文件加入两行配置: …

SOCKET编程和TCP通信案例三次握手四次挥手

文章目录 一、SOCKET1、网络套接字SOCKET2、网络字节序2.1、小端法2.2、大端法2.3、字节序转换3、IP地址转换函数3.1、本地字节序转网络字节序3.1.1、函数原型:3.1.2、返回值3.2、网络字节序转本地字节序3.2.1、函数原型3.2.2、返回值4、sockaddr地址结构&#xff0…

菜鸟关于做前、后端的整理(html、js),以及疑问

涉及到后端的接口py&#xff0c;前端html和js 这三部分就按照如下格式放到server项目主路径下&#xff0c;这样后端机可以作为一个前端server main.pystaticmain.jsmain.htmlhtml 首先是html要设定网页的显示 <!DOCTYPE html> <html> <head><title>…

深入解析JavaScript中的var、let和const

&#x1f9d1;‍&#x1f393; 个人主页&#xff1a;《爱蹦跶的大A阿》 &#x1f525;当前正在更新专栏&#xff1a;《VUE》 、《JavaScript保姆级教程》、《krpano》、《krpano中文文档》 ​ ​ ✨ 前言 变量的声明是编程中非常基础和关键的概念。在ES6之前,JavaScript只有…

第十四章 MyBatis

第十四章 MyBatis 1.入门-课程介绍2.入门-快速入门程序3.配置SQL提示4.入门-JDBC5.入门-数据库连接池6.入门-lombok工具包介绍7.基础操作-环境准备8.基础操作-删除9.基础操作-删除&#xff08;预编译SQL&#xff09;10.基础操作-新增11.基础操作-新增&#xff08;主键返回&…

006.Oracle事务处理

我 的 个 人 主 页&#xff1a;&#x1f449;&#x1f449; 失心疯的个人主页 &#x1f448;&#x1f448; 入 门 教 程 推 荐 &#xff1a;&#x1f449;&#x1f449; Python零基础入门教程合集 &#x1f448;&#x1f448; 虚 拟 环 境 搭 建 &#xff1a;&#x1f449;&…

若依cloud框架使用定时任务实践

参考博客 https://blog.csdn.net/m0_60563637/article/details/126429284 具体操作 1.在job服务的task包下新建一个你需要的Task类 代码&#xff1a; Slf4j Component("propertyTask") public class PropertyTask {public void testDemo(){System.out.println(&q…

XHCMS靶场小记(熊海)

文件包含漏洞 template下的header.php中存在文件包含漏洞&#xff08;该文件被file文件夹下的多数文件进行包含&#xff09; f参数可以包含任意文件通过php格式解析&#xff08;这是文件包含点&#xff09; 代码分析 根目录下的index.php文件&#xff1b;r参数用于获取包含文…

[足式机器人]Part2 Dr. CAN学习笔记- Kalman Filter卡尔曼滤波器Ch05-3+4

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记 - Kalman Filter卡尔曼滤波器 Ch05-34 3. Step by step : Deriation of Kalmen Gain 卡尔曼增益/因数 详细推导4. Priori/Posterrori error Covariance Martix 误差协方差矩阵 3. Step by step :…

组件(Component):可重用的元素

目标效果&#xff1a;点击粉色按钮后&#xff0c;出现一行“为什么非要点我&#xff1f;”的文字。 用组件的方式实现&#xff1a;首先单击项目文件夹01&#xff0c;然后右键弹窗中点击“添加新文件” 。 选择 QML File 文件&#xff1a; 文件名就叫Button&#xff0c;然后把代…

java数据结构与算法刷题-----LeetCode283. 移动零

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 解题思路 双指针&#xff0c;用right和left两个指针&#xff0c;将非0元素…

vue中引入sass、scss

常规步骤 1. 创建项目 使用vue cli 脚手架工具创建项目 vue create xxxx2. 创建全局样式文件 全局样式变量 路径&#xff1a;/assets/styles/variables.scss //flex 布局变量 $--flex-direction: ("row", "column"); $--flex-position: ("start"…

主动轮廓——计算机视觉中的图像分割方法

​ 一、说明 简单来说&#xff0c;计算机视觉就是为计算机提供类似人类的视觉。作为人类&#xff0c;我们很容易识别任何物体。我们可以很容易地识别山丘、树木、土地、动物等&#xff0c;但计算机没有眼睛&#xff0c;也没有大脑&#xff0c;因此它很难识别任何图像。计算机只…

tomcat与servlet

目录 一、Http服务器 二、tomcat 1、概念 2、tomcat解压缩文件 &#xff08;1&#xff09;bin文件夹 &#xff08;2&#xff09;conf文件夹 &#xff08;3&#xff09;logs &#xff08;4&#xff09;webapps 3、借助tomcat服务器访问网页 三、servlet 1、概念 2、s…

java SSM园林绿化管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM园林绿化管理系统是一套完善的web设计系统&#xff08;系统采用SSM框架进行设计开发&#xff0c;springspringMVCmybatis&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代 码和数据库&#xff0c;系统主要采…

安全基础~web攻防特性2

文章目录 知识补充Javaweb安全之webGoatwebgoat靶场搭建闯关GeneralInjectionldentity & Auth Failurelog4j2漏洞利用 JS项目&Node.JS框架安全 知识补充 Burpsuite Render在无法预览显示时&#xff0c;可以适当的清理缓存 win10下输入文字变成繁体解决 Javaweb安全之…

一键转换,让JPG轻松变身BMP - 提升办公效率,从这里开始!

在繁忙的办公环境中&#xff0c;我们总是在追求更高的效率&#xff0c;希望以更短的时间完成更多的任务。今天&#xff0c;我们将为您带来一款强大且实用的工具&#xff0c;它能帮助您快速将JPG格式的图片转换为BMP格式&#xff0c;让您在处理图片时更加得心应手。 首先&#x…

5分钟教会你如何在生产环境debug代码

前言 有时出现的线上bug在测试环境死活都不能复现&#xff0c;靠review代码猜测bug出现的原因&#xff0c;然后盲改代码直接在线上测试明显不靠谱。这时我们就需要在生产环境中debug代码&#xff0c;快速找到bug的原因&#xff0c;然后将锅丢出去。 生产环境的代码一般都是关闭…