git介绍和使用

news2024/9/22 15:34:49

目录

一、git概述

1、简介

2、下载安装

二、git代码托管服务

1、常用的 Git 代码托管服务

2、使用码云代码托管服务 

三、git常用命令

1、git全局设置

2、获取git仓库

3、工作区、暂存区、版本库 概念

 4、Git工作区中文件的状态

5、本地仓库操作 

6、远程仓库操作

7、分支操作

8、标签操作

三、在 IDEA 中使用 Git

1、在 IDEA 中配置 Git

2、获取Git仓库

3、本地仓库操作

4、远程仓库操作

5、远程仓库操作 


一、git概述

1、简介

Git是一个分布式版本控制工具,主要用于管理开发过程中的源代码文件(Java类、xml文件、html页面等),在软件开发过程中被广泛使用。代码回溯、版本切换、多人协作、远程备份

本地仓库:开发人员自己电脑上的 Git 仓库

远程仓库:远程服务器上的 Git 仓库

 commit:提交,将本地文件和版本信息保存到本地仓库

push:推送,将本地仓库文件和版本信息上传到远程仓库

pull:拉取,将远程仓库文件和版本信息下载到本地仓库

2、下载安装

下载地址: Git - Downloads

 

 出现上图即为安装成功

Git GUI Here:打开Git 图形界面

Git Bash Here:打开Git 命令行

二、git代码托管服务

1、常用的 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作为分布式版本控制系统,同时提供商业计划和免费账户

2、使用码云代码托管服务 

使用码云的操作流程如下:

1、注册码云账号

注册网址: https://gitee.com/signup

2、登录码云

注册完成后可以使用刚刚注册的邮箱进行登录(地址: https://gitee.com/login

3、创建远程仓库

4、邀请其他用户成为仓库成员

 目前仓库成员只有自己一个人(身份为管理员)。在企业实际开发中,一个项目往往是由多个人共同开发完成的,为了使多个参与者都有权限操作远程仓库,就需要邀请其他项目参与者成为当前仓库的成员。

三、git常用命令

1、git全局设置

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

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

u 设置用户信息

   git config --global user.name “youzai

   git config --global user.email “hello@youzai .cn”

 查看配置信息

   git config --list

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

2、获取git仓库

获取Git仓库通常有两种方式:

(1) 在本地初始化一个 Git 仓库(不常用)

        执行步骤如下:

        1. 在任意目录下创建一个空目录(例如repo1)作为我们的本地Git仓库

        2. 进入这个目录中,点击右键打开Git bash窗口

        3. 执行命令git init

        如果在当前目录中看到.git文件夹(此文件夹为隐藏文件夹)则说明Git仓库创建成功

(2)从远程仓库克隆(常用)

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

命令形式:git clone 【远程Git仓库地址】

3、工作、暂存区、版本库 概念

版本库:前面看到的.git隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等

工作区:包含.git文件夹的目录就是工作区,也称为工作目录,主要用于存放开发的代码

暂存区.git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存修改文件的地方

 4、Git工作区中文件的状态

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

untracked 未跟踪(未被纳入版本控制)
tracked 已跟踪(被纳入版本控制)

 1Unmodified 未修改状态

 2Modified 已修改状态

 3Staged 已暂存状态

5、本地仓库操作 

本地仓库常用命令如下:

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

6、远程仓库操作

(1)git remote   查看远程仓库

(2)git remote add  添加远程仓库
        添加远程仓库,运行 git remote add < shortname > < url > 添加一个新的远程 Git 仓库,同时指定一个可以引用的简写。
(3)git clone  从远程仓库克隆

        如果你想获得一份已经存在了的 Git 远程仓库的拷贝,这时就要用到 git clone 命令。 Git 克隆的是该 Git 仓库服务器上的几乎所有数据(包括日志信息、历史记录等),而不仅仅是复制工作所需要的文件。

        克隆仓库的命令格式是: git clone [url]

(3)git pull  从远程仓库拉取

        git pull 命令的作用是从远程仓库获取最新版本并合并到本地仓库,命令格式:git pull [short-name] [branch-name]

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

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

(4)git push  推送到远程仓库
将本地仓库内容推送到远程仓库,可以使用命令: git push [remote-name] [branch-name]

7、分支操作

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

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

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

(1)git branch  查看分支

git branch  列出所有本地分支

git branch -r  列出所有远程分支

git branch -a  列出所有本地分支和远程分支

(2)git branch [name]  创建分支

创建分支命令格式: git branch [name]
(3) git checkout [name]  切换分支

切换分支命令格式:git checkout [name]

(4) git push [ shortName ] [name]  推送至远程仓库分支
推送至远程仓库分支命令格式: git push [ shortName ] [name]
(5) git merge [name]  合并分支
合并分支命令格式: git merge [name]

8、标签操作

git tag  列出已有的标签
 列出已有的标签可以使用命令: git tag
git tag [name]  创建标签
创建标签可以使用命令: git tag [name]
git push [ shortName ] [name]  将标签推送至远程仓库
将标签推送至远程仓库的命令格式: git push [ shortName ] [name]
git checkout -b [branch] [name]  检出标签
检出标签时需要新建一个分支来指向某个标签,检出标签的命令格式: git checkout -b [branch] [name]

三、在 IDEA 中使用 Git

1、在 IDEA 中配置 Git

2、获取Git仓库

IDEA中使用Git获取仓库有两种方式:

本地初始化仓库

从远程仓库克隆

3、本地仓库操作

将文件加入暂存区
将暂存区的文件提交到版本库
查看日志

 

4、远程仓库操作

查看远程仓库
添加远程仓库
推送至远程仓库
从远程仓库拉取

5、远程仓库操作 

查看分支

创建分支

切换分支

将分支推送到远程仓库

合并分支

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

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

相关文章

Jetson Nano介绍

1. bo1公版介绍 Jetson NanoBO1公版的实物图如下图所示。其中1是TF卡接口&#xff0c;可以进行系统镜像烧写&#xff1b;2是40PIN GPIO扩展接口&#xff1b;3是用来传输数据或使用电源供电的Micro USB接口&#xff1b;4是千兆以太网口&#xff1b;5是USB3.0接口&#xff1b;6是…

CentOS Linux的替代品(五)_BigCloud Enterprise Linux for Euler 21.10 U 3基础安装教程

文章目录 CentOS Linux的替代品&#xff08;五&#xff09;_BigCloud Enterprise Linux for Euler 21.10 U 3基础安装教程一、BC-Linux简介二、BigCloud Enterprise Linux for Euler 21.10U3基础安装2.1 下载地址2.2 安装过程 三、简单使用3.1 关闭selinux3.1.1 临时关闭selinu…

QT学习笔记:QT的信号与槽

一、信号与槽&#xff08;Signal & Slot&#xff09;的基本概念 1、了解信号与槽 &#xff08;1&#xff09;信号&#xff08;Signal&#xff09;&#xff1a;在特定情况下被发射的事件&#xff0c;例如PushButton 最常见的信号就是鼠标单击时发射的 clicked() 信号&…

Pytest测试框架快速搭建

一、介绍 pytest是一个非常成熟的Python测试框架&#xff0c;能够支持简单的单元测试和复杂的功能测试&#xff0c;还可以用来做selenium/appnium等自动化测试、接口自动化测试&#xff08;pytestrequests&#xff09;&#xff1b;pytest具有很多第三方插件&#xff0c;并且可…

springboot整合腾讯企业邮箱/企业微信邮箱

springboot整合腾讯企业邮箱/企业微信邮箱 登录后点击“客户端设置” 2.勾选红框中选项并保存 3.点击微信绑定并绑定微信 4.绑定微信后点击生成新密码并保存(复制生成的密码后面会使用) 5.将配置复制到代码中 <dependency><groupId>com.sun

凤凰架构阅读记录-三(分布式算法)

1.Paxos 世界上只有一种共识协议&#xff0c;就是 Paxos&#xff0c;其他所有共识算法都是 Paxos 的退化版本。 算法流程: 1.提案节点&#xff1a;称为 Proposer&#xff0c;提出对某个值进行设置操作的节点&#xff0c;设置值这个行为就被称之为提案&#xff08;Proposal&a…

【海量数据挖掘/数据分析】 之 K-NN 分类(K-NN、K-NN实例、准确率评估方法、准确率、召回率)

【海量数据挖掘/数据分析】 之 K-NN 分类(K-NN、K-NN实例、准确率评估方法、准确率、召回率) 目录 【海量数据挖掘/数据分析】 之 K-NN 分类(K-NN、K-NN实例、准确率评估方法、准确率、召回率) 一、 K-NN 简介 二、K-NN 分类 三、K-NN 分类实例 1、1-NN 分类 : 此时 A 类别…

leetcode 859. Buddy Strings(同伴字符串)

给出字符串s 和 goal, 判断交换 s 中的一对字母是否能得到goal. 必须是不同位置字母的交换。 思路&#xff1a; 先考虑边界情况&#xff0c; s 和 goal 的长度不相等时&#xff0c;s 怎么交换都不会得到goal. s 的长度 < 2时&#xff0c;没有可交换对象&#xff0c;肯定是…

【力扣】94、二叉树的中序遍历

94、二叉树的中序遍历 注&#xff1a;二叉树的中序遍历&#xff1a;左根右&#xff1b; // 非递归&#xff1a; var inorderTraversal function (root) {const arr [];//创建新数组&#xff1b;const stack [];//创建一个栈道&#xff1b;let o root;while( stack.length |…

办公实现降本增效,可借助微服务开源平台的力量!

在如今的快节奏发展时代&#xff0c;低代码开发平台拥有了一个广阔的发展天地&#xff0c;逐渐在通信业、医疗、物流、高校等众多大中型企业中获得一个立足之地&#xff0c;是助力企业提质、降本、增效的得力助手。微服务开源平台可以让企业实现这一目的&#xff0c;那么对于企…

AMBER分子动力学能量优化与分析、结合自由能计算专题

AMBER分子动力学能量优化与分析、结合自由能计算专题 第一天 时间:AM9:00~9:50 内容:六.分子动力学入门理/论 教学目标&#xff1a;了解本方向内容、理论基础、研究意义。 主要知识点:4分子力学简介 4.1分子力学的基本假设 4.2分子力学的主要形式 5分子力场 5.1分子力场的简…

passware kit forensic使用

一、从外部注册表文件提取密码 适用于不联网的情况下&#xff0c;例如2023盘古石杯的NAS取证 找到Windows/System32/config并在本地打开 将路径填充到config folder中 跑出来了John电脑对应的密码是paofen&#xff0c;NAS的密码是P88w0rd 后续遇见再补

Linux - 那些年测试服务器带宽的 3 种方式

方式一 speedtest-cli wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.pychmod x speedtest-cliorcurl -Lo speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.pychmod x speedtest-c…

【Linux】基础开发工具——yum篇

目录 &#x1f4d6;Linux下安装软件的三种方案&#x1f4f0;源代码安装&#x1f4f0;rpm安装&#x1f4f0;yum安装 &#x1f4d6;Linux软件包管理器yum&#x1f4f0;rz、sz&#x1f4f0;查看软件包&#x1f4f0;软件安装&#x1f4f0;软件删除 &#x1f4d6;yum源问题&#x1f…

Hadoop:DataNode启动失败:Initialization failed for Block pool

一、问题发现 ​在启动Hadoop集群后&#xff0c;发现原本应该是启动三台机子的数据节点&#xff0c;结果只有一台node2成功启动&#xff0c;另外两台&#xff08;node1、node3&#xff09;并没有启动&#xff0c;如下两图所示&#xff1a; 问题描述&#xff1a; ​确认配置信…

day3 QT对话框

目录 QDialog 标准对话框&#xff08;Standard Dialogs&#xff09;&#xff1a; 内置对话框&#xff08;Built-in Dialogs&#xff09;&#xff1a; 自定义对话框&#xff08;Custom Dialogs&#xff09; 示例 myqdialog.h widget.h myqdialog.cpp widget.cpp QDialog Q…

springboot实现网络图片转存的临时文件后上传腾讯云cos

有时复制一张图片url&#xff0c;想转存到自己的腾讯云cos保存。 实现思路是&#xff1a;先将网络图片url保存到当前项目一个临时文件夹里&#xff0c;然后发送腾讯云cos对象存储&#xff0c;返回一个url&#xff0c;最后&#xff0c;删除该临时文件图片。 测试结果 1. util实…

【C】分支和循环语句

目录 【1】什么是语句 【2】分支语句&#xff08;选择结构&#xff09; 【2.1】if 语句 【2.1.1】语法结构 【2.1.2】悬空else 【2.1.3】书写形式的对比 【2.1.4】练习 【2.2】switch 语句 【3.2.1】语法结构 【3.2.2】在switch语句中的 break 【3.2.3】default子句…

Nginx【Nginx场景实践(fair模块安装、Nginx配置故障转移、跨域问题、跨域问题解决)】(九)-全面详解(学习总结---从入门到深化)

目录 Nginx场景实践_fair模块安装 Nginx场景实践_Nginx配置故障转移 Nginx场景实践_跨域问题 Nginx场景实践_跨域问题解决 Nginx场景实践_fair模块安装 模块介绍 fair采用的不是内建负载均衡使用的轮换的均衡算法&#xff0c;而是可以根据 页面大小、加载时间长短智能的进…

C++(Day5)

思维导图&#xff1a; 全局变量&#xff0c;int monster 10000;定义英雄类hero&#xff0c;受保护的属性string name&#xff0c;int hp,int attck&#xff1b;公有的无参构造&#xff0c;有参构造&#xff0c;虚成员函数 void Atk(){blood-0;}&#xff0c;法师类继承自英雄类…