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

news2024/11/15 3:34:11

目录

  • 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

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

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

相关文章

锐浪报表 Grid++Report 明细表格标题重复打印

一、问题提出 锐浪报表 GridReport,打印表格时,对于明细表格的标题,打开换页时,需要重复打印明细表格的标题,或取消打印明细表格的标题。见下表: 首页: 后续页:(无明细表…

Unity中URP下获取主灯信息

文章目录 前言一、计算BulinnPhone的函数有两个重载1、 目前最新使用的是该方法(这是我们之后主要分析的函数)2、 被淘汰的老方法,需要传入一堆数据 二、GetMainLight1、Light结构体2、GetMainLight具有4个方法重载3、1号重载干了什么&#x…

10 大免费从U盘/移动硬盘器恢复删除文件的U盘/移动硬盘恢复软件

U盘/移动硬盘是一种出色的便携式存储介质,可让我们快速轻松地存储、共享和传输数据。它们体积小、结构坚固,而且通常存储容量大,因此非常受欢迎。然而,尽管它很安全,但您也可能会因意外删除、格式化、拒绝访问等原因而…

Visual Studio 下载安装教程,附安装包和工具,Visual Studio 2022,Visual Studio所有版本都有

前言 Visual Studio是微软推出的一款C编译器,将“高级语言"翻译为"机器语言(低级语言)"的程序,VS是一个非常完整的开发工具集,包括了所有软件生命周期中所需的大部分工具,如UML工具、代码管控工具、集…

2024年MacBookPro电脑数据恢复软件EasyRecovery数据恢复

前天新入手了一台MacBook pro,第一次用Mac激动的心情简直难以言喻,可是随后这激动的心情顿时就烟消云散了,因为对Mac操作系统的不熟练,导致我删除了一份很重要的Word文件。MacBook pro如何恢复误删除的文件?就这件事我向朋友求助…

Qt弹框展示

1.相关说明 文件选择弹框、目录选择弹框、保存文件弹框、颜色选择弹框、字体选择弹框、进度条弹框、输入对话框、标准消息框等 2.相关界面 3.相关代码 #include "widget.h" #include "ui_widget.h" #include <QFileDialog> #include <QProgressD…

Java医院信息管理系统

技术框架&#xff1a; springboot shiro layui jquery thymeleaf nginx 有需要的可以联系我。 运行环境&#xff1a; jdk8 mysql IntelliJ IDEA maven项目功能&#xff1a; 本项目是用springbootlayuishiro写的医院管理系统&#xff0c;系统的业务比较复杂&#x…

自学C语言-4

第4章 运算符与表达式 了解了程序中常用的数据类型后&#xff0c;还应该懂得如何操作这些数据。因此&#xff0c;掌握C语言中各种运算符与表达式是必不可少的。本章致力于使读者了解表达式的概念&#xff0c;掌握运算符及相关表达式的使用方法&#xff0c;其中包括赋值运算符、…

基于vue+Spring Boot技术的幼儿园管理系统设计与实现4un3j

本系统能为家长、教师提供一个幼儿园管理平台&#xff0c;就能够快速有效的帮助家长在线查询活动名次、学生考勤、成长记录等&#xff0c;教师发布班级信息、课程信息等&#xff0c;并且可以让管理员能够轻松效率地添加所有的信息。系统开发的意义主要在于两个方面&#xff0c;…

nginx重定向,根据端口重定向

//直接跳转 if ($server_port 9058 ) {# return 301 https://$host$request_uri;return 301 http://www.baidu.com; }//重定向&#xff0c;不跳转域名&#xff0c;还是原域名 location / {if ($server_port 9058 ) {proxy_pass http://ts.***.***.com:9059;} }location / {i…

mybatis xml多表查询,子查询,连接查询,动态sql

项目结构 数据库表 student_type 表 student 表 依赖 <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.30</version></dependency><dependency><groupId>org.…

cetos7搭建部署k8s 版本1.28

主机分配 内存最少是4G cpu个数最少两个 IP内存CPU主机名192.168.231.12044K1 192.168.231.12144K2192.168.231.12244K3 关闭防火墙 systemctl stop firewalled 关闭swap vim /etc/fstab 设置主机名称 hostnameset 安装docker 三个主机 初始化集群 在mas…

音乐人声分离工具:极简的人声和背景音乐分离工具

项目地址&#xff1a;jianchang512/vocal-separate: an extremely simple tool for separating vocals and background music, completely localized for web operation, using 2stems/4stems/5stems models 这是一个极简的人声和背景音乐分离工具&#xff0c;本地化网页操作&a…

鉴源实验室|自动驾驶仿真测试技术分析

01 引言 随着科技的不断发展&#xff0c;自动驾驶技术逐渐成为汽车行业的热门话题。然而&#xff0c;要将自动驾驶车辆投放到真实道路上之前&#xff0c;必须进行广泛的测试&#xff0c;以确保其在各种情况下都能安全可靠地运行。自动驾驶车辆的测试是一个复杂而昂贵的过程。…

Flink Kubernetes Operator 介绍

一、简介 Flink Kubernetes Operator是针对在Kubernetes上运行Apache Flink应用程序而设计的工具。它充分利用了Kubernetes的优势&#xff0c;实现了对Flink集群的弹性管理和自动化操作&#xff0c;通过扩展Kubernetes API的方式&#xff0c;提供了管理和操作Flink部署的功能。…

C语言——详解字符函数和字符串函数(上)

目录 一、strlen的使用和模拟实现 1.strlen()函数的介绍 2.strlen()函数的具体使用 3.strlen函数的注意事项 4.strlen函数的模拟实现 二、strcpy的使用和模拟实现 1.strcpy()函数的介绍 2.strcpy()函数的具体使用 3.strcpy()函数的注意事项 4.strcpy函数的模拟实现 …

【MySQL自身的性能优化】InnoDB 的 Buffer Pool

这里写目录标题 一、引入缓存的重要性二、InnoDB 的 Buffer Pool1. Buffer Pool 内部组成2. free 链表管理空闲页3. flush 链表管理脏页4. LRU 链表提高缓存命中那咱需要咋地解决预读问题呢&#xff1f;那咱需要咋地解决 Buffer Pool 污染问题呢&#xff1f; 5. 脏页什么时候被…

Spring Cloud可视化智慧工地大数据云平台源码(人、机、料、法、环五大维度)

智慧工地平台是依托物联网、互联网、AI、可视化建立的大数据管理平台&#xff0c;是一种全新的管理模式&#xff0c;能够实现劳务管理、安全施工、绿色施工的智能化和互联网化。围绕施工现场管理的人、机、料、法、环五大维度&#xff0c;以及施工过程管理的进度、质量、安全三…

鸿蒙harmony--数据库sqlite详解

今天是1月20号星期六&#xff0c;早安&#xff0c;岁末大寒至&#xff0c;静后春归来。愿他乡故人&#xff0c;漂泊有归宿&#xff0c;前程有奔赴&#xff0c;愿人间不寒&#xff0c;温暖常伴&#xff0c;诸事顺利&#xff0c;喜乐长安。 目录 一&#xff0c;定义 二&#xff…

Python seaborn库的边框设置(Seaborn篇-02)

Python seaborn库的边框设置(Seaborn篇-02)         🍹博主 侯小啾 感谢您的支持与信赖。☀️ 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔…