学习【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. 分支操作

3-7. 标签操作

4. 在IDEA中使用Git

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

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

相关文章

实战之-Redis商户查询缓存

一、什么是缓存? 前言:什么是缓存? 就像自行车,越野车的避震器 举个例子:越野车,山地自行车,都拥有"避震器",防止车体加速后因惯性,在酷似"U"字母的地形上飞跃,硬着陆导致的损害,像个弹簧一样; 同样,实际开发中,系统也需要"避震器",防止过高…

AWTK 开源智能串口屏方案视频介绍

强大的界面设计器 AWStudio。 基于 AWTK 实现强大的 GUI 功能(多窗口、输入法、动画和各种控件)。 基于 AWTK-MVVM 实现低代码开发(编写绑定规则即可实现常见应用程序)。 支持在 PC 上模拟运行,并提供 MCU 模拟器模…

SRC实战 | EDU通用漏洞分享

本文由掌控安全学院 - 叴龙 投稿 又是没事干的一天,写一下之前挖的两个通用漏洞。 1.信息搜集 首先就是信息搜集,挖edu没账号怎么办呢?sg不行,咱就找能自己注册的站。 Hunter:web.title”XX大学”&&web.bod…

2024 Google material-design-icons助力你创建更好的Material风格应用

2024 Google material-design-icons助力你创建更好的Material风格应用 Material Icons / Material Symbols 这是谷歌推出的两个不同的官方图标集,它们使用相同的基础设计。Material Icons是经典的图标集,而Material Symbols是在2022年4月引入的&#x…

Linux自动化构建工具——make和Makefile使用详解

一、初步认识make和Makefile 我们首先需要知道的是,make是一个命令,Makefile是一个文件,Makefile中包含了依赖关系和依赖方法。 从上面的文件以及指令中我们可以看到,我们可以在Makefile文件中写入依赖关系以及对应的依赖方法&…

设计模式⑦ :简单化

文章目录 一、前言二、Facade 模式1. 介绍2. 应用3. 总结 三、Mediator 模式1. 介绍2. 应用3. 总结 一、前言 有时候不想动脑子,就懒得看源码又不像浪费时间所以会看看书,但是又记不住,所以决定开始写"抄书"系列。本系列大部分内容…

配置redis挂载

1. 暂停和删除redis 2.创建文件夹 /usr/local/software/redis/6379/conf/ /usr/local/software/redis/6379/data/ 把redis-conf文件上传到conf文件夹中 3.配置网络 docker network create --driver bridge --subnet172.18.12.0/16 --gateway172.18.1.1 wn_docker_net 4.运…

Go后端开发 -- 反射reflect 结构体标签

Go后端开发 – 反射reflect && 结构体标签 文章目录 Go后端开发 -- 反射reflect && 结构体标签一、反射reflect1.编程语言中反射的概念2.interface 和反射3.变量内置的pair结构4.reflect的基本功能TypeOf和ValueOf5.从relfect.Value中获取接口interface的信息6…

C++ 设计模式之 中介者模式

【声明】本题目来源于卡码网(题目页面 (kamacoder.com)) 【提示:如果不想看文字介绍,可以直接跳转到C编码部分】 【设计模式大纲】 【简介】 -- 什么是中介者模式 (第16种模式) 中介者模式(Medi…

Python 面向对象绘图(Matplotlib篇-16)

Python 面向对象绘图(Matplotlib篇-16)         🍹博主 侯小啾 感谢您的支持与信赖。☀️ 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ�…

TQ8WS-acid,Tide Quencher 8WS-酸,可用来研究荧光物质的激发态

您好,欢迎来到新研之家 文章关键词:Tide Quencher8WS acid,TQ8WS acid,Tide Quencher 8WS 酸 ,TQ8WS 酸,Tide Quencher 8WS-酸,TQ8WS-酸 一、基本信息 产品简介:The fluorescence…

牛客.KY11二叉树遍历、 LeetCode104.二叉树的最大深度 ,110平衡二叉树

二叉树实操小练习~这里对二叉树的遍历要有一定的理解,如果还不熟悉的小伙伴可以看看我的这篇博客:数据结构——二叉树(先序、中序、后序及层次四种遍历(C语言版))超详细~ (✧∇✧) Q_Q-CSDN博客 牛客.KY11二…

文档翻译网站有哪些?这些工具高效翻译

文档翻译网站有哪些?随着全球化的加速,跨语言沟通变得越来越重要。然而,语言差异常常成为我们与世界各地人们交流的障碍。为了解决这个问题,文档翻译软件应运而生。今天,我们就来介绍一些受欢迎的文档翻译软件&#xf…

【Docker】安装nacos以及实现负载均衡

🥳🥳Welcome 的Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于Docker的相关操作吧 目录 🥳🥳Welcome 的Huihuis Code World ! !🥳🥳 前言 一.nacos单个部署 1.镜像拉取 …

4.C++类和对象

深拷贝和浅拷贝的简单理解:

提纲框架写作方法

论文提纲 论文提纲的意义 有利于检查构思有利于调整修改和写作 拟定提纲的目的 拟标题写总论点做总安排:几个方面,什么顺序做下位论点:每个项目的下位论点,直到段一级,写段的论点句考虑各段安排,把材料…

2024 前端高频面试题之 HTML/CSS 篇

【前言】随着市场的逐渐恶劣,通过总结面试题的方式来帮助更多的coder,也是记录自己的学习过程,温故而知新。欢迎各位同胞大大点评补充~ 前端面试题之 HTML/CSS 篇 1、HTML 语义化?2、块级元素&内联样式3、盒子模型的理解&…

机器学习:holdout法(Python)

import pandas as pd import numpy as np from sklearn.preprocessing import LabelEncoder, StandardScaler # 类别标签编码,标准化处理 from sklearn.decomposition import PCA # 主成分分析 import matplotlib.pyplot as plt from sklearn.model_selection impor…

springboot 原理分析之自动配置

一、Condition Condition 是在 Spring 4.0 增加的条件判断功能,通过这个可以功能可以实现选择性的创建 Bean 操作。比如说,只有满足某一个条件才能创建这个 Bean,否则就不创建。 SpringBoot 是如何知道要创建哪个 Bean 的?比如 Sp…