Git详解——安装、使用、搭建、IDEA集成
Git
看目录,篇幅挺长,越往后面越重要
| 目录 |
|---|
| 一、git是什么? |
| 二、为什么要使用Git? |
| 三、版本控制工具 |
| 四、git下载安装以及环境配置 |
| 五、git基本命令 |
| 六、git项目搭建 |
| 七、远程仓库怎么搞?git,gitlab,github,gitee区别 |
| 八、idea集成Git |
一、Git是什么?
- Git是一款分布式源代码管理工具(版本控制工具)
- 使用Git,每次提交或保存项目状态时,Git基本上都会记录当时所有文件的外观,并存储对该快照的引用

二、为什么要使用Git
-
当你需要做一个大工程的时候,文件的管理无疑是非常庞大的工作,因为你需要不断的修改更新文件内容,同时可能还要保留旧版本保证可以复原,这样就需要备份多个版本的文件。
-
并且在大多数情况下一个工程需要在多数人来共同维护,那么这种情况下不同人之间修改内容的合并也是非常麻烦的,这时使用git就可以很轻松的解决这些问题。
三、版本控制工具
主流的版本控制器有如下这些:
-
Git :分布式版本控制(最流行)
-
SVN(Subversion): 集中版本控制(会用到)
-
CVS(Concurrent Versions System)
-
VSS(Micorosoft Visual SourceSafe)
-
TFS(Team Foundation Server)
-
Visual Studio Online
git 与 svn 的区别
目前最流行的版本控制框架就是git,但是也有很多用svn的;

git
优点:
-
适合分布式开发,强调个体。
-
公共服务器压力和数据量都不会太大。
-
速度快、灵活。
-
任意两个开发者之间可以很容易的解决冲突。
-
离线工作。
缺点:
-
资料少(起码中文资料很少)。
-
学习周期相对而言比较长。
-
不符合常规思维。
-
代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息
svn
优点:
-
集中式管理,管理方式在服务端配置好,客户端只需要同步提交即可,使用方便,操作简单,很容易就可以上手。
-
在服务端统一控制好访问权限,利用代码的安全管理。
-
所有的代码以服务端为准,代码一致性高。
缺点:
-
所有操作都需要通过服务端进行同步,这会导致服务器性能要求比较高。如果服务器宕机了就无法提交代码了。
-
分支管理不灵活,svn分支是一个完整的目录,且这个目录拥有完整的实际文件,这些操作都是在服务端进行同步的。
-
不是本地化操作,如果要删除分支,也是需要将远程的分支进行删除,这会导致大家都得同步。
-
需要连网,如果无法连接到服务器就无法提交代码。
四、git下载安装以及环境配置
git官网下载
1.点击Downloads选择自己的操作系统,并选择32位或者64位

如果下载慢,那就选用国内镜像下载,这里提供了[阿里镜像地址](https://registry.npmmirror.com/binary.html?path=git-for-windows/),选择比较稳定的版本,自己运用的系统版本
2.比如我选了这个,点击下载

3.下来就是安装流程了,这里我就不废话了,很简单步骤,直接看该博主安装博文
Git下载安装教程
打开git除了该博主说的桌面快捷键外,右击鼠标,选择 “Git Bash Here” 也可以;另外环境配置也可能已经自动给配置上了,配置上的话就不用再配置了
4.打开git,其实在git文本框里操作文件的命令就是linux的命令,如下:


*五、git基本命令
查看git配置
git config -l

那这个配置文件在本地的什么地方呢?
git安装目录/etc/gitconfig 文件

查看git本地系统配置
git config --system --list

同样这个本地系统配置文件在哪里放着呢?
c盘/用户/用户名下的 “.gitconfig”文件中

**这个本地配置需要自己配置。以后提交代码之类的会用得着,怎么配置呢?如下:

然后打开本地配置文件,发现信息已经写入
查看git当前用户配置
--global全局
git config --global --list
克隆代码
git clone 远程地址
查看本地分支
git branch
查看远程分支
git branch -r
查看所有分支
git branch -a
切换分支
git checkout 分支名
创建分支
git branch 分支名
创建新分支并切换
git checkout -b 分支名
查看该分支 状态
git status
查看 日志
git log
git从远程分支创建本地分支
git checkout -b 本地分支名 origin/远程分支名
git添加内容到缓存区
git add .
git 提交 内容到本地
git commit
git 更新仓库内容
git pull origin master
git 提交内容到远程仓库
git push origin master #-f强推
git 获取最新变更
git fetch origin
说明
这些命令在项目上用的最多的就是add、commit、push、pull、checkout
Working Directory:工作区,平时存放项目代码的地方
Stage(index):用于临时存放改动的文件
Repostory:仓库区(或本地仓库),就是安全存放数据的位置,这里有你提交的所有版本的数据;其中HEAD指向最新放入仓库的版本
Remote:远程仓库,托管代码的服务器,可以简单的任务是你项目组中的一台电脑用于远程数据交换本地的三个区域,确切的说应该是git仓库中HEAD指向的版本。

六、Git项目搭建

git安装上了,命令也学习了,那么项目如何搭建呢?
方式一:
1.首先创建一个空文件夹,如下,目前是空文件夹

2. 右键点“Git Bash Here”,输入“git init”,也就是初始化项目,文件中出现了一个.git隐藏文件夹,若是没发现有,点开查看——勾选“隐藏的文件”

方式二:
直接克隆远程项目
git clone [远程项目url]
七、远程仓库怎么搞?
这里我们先聊一下Git,Gitee,GitLab,GitHub是个什么玩意?
先看定义:
-
Git 分布式版本控制系统
-
Gitee 码云,国内远程仓库,也就是在线代码托管工具,你的项目就可以远程推送到这里;Gitee官网
-
GitLab 一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。一般用于企业内搭建私服,要自己搭环境 GitLab官网
-
GitHub 也是一个在线代码托管的仓库,国外的远程仓库;毕竟是国外的,打开就挺慢 GitHub官网
——那么这里呢就给说下Gitee
- 1.首先就是注册登录以后,将基本信息修改下

- 2.生成公钥,也就是你本地代码推送至远程仓库的时候不需要每次输入用户名密码;我这里已经有了;

任意目录下右键点击“Git Bash Here” 输入以下内容,回车
--rsa是加密算法方式“ssh-keygen -t rsa”
此时已经生成公钥,公钥文件在本地目录c盘/用户/用户名/.ssh/id_rsa.pub

打开该文件,将里面的内容全部粘贴到以下输入框。点击确定即可添加

- 3.创建仓库,仓库修改为公有需要创建以后再修改

- 4.目前仓库建好了,然后将远程仓库克隆到本地
创建文件夹,然后输入以下内容
git clone [远程仓库url]

这个时候本地文件和远程文件是一样的
- 5.命令测试一下
在克隆的文件夹里右键打开git,操作以下命令
--查看状态
git status--创建一个文件
touch hello.html--查看状态,会发现有个红色文件,表示有新文件没有add
git status--添加
git add .--查看状态,发现文件变绿,表示有没提交的文件
git status--提交文件到本地仓库,这里要加-m 并且后面说明提交信息
git commit -m “new file hello.html”--查看状态,发现提示没有要提交的文件了
git status--推送到远程仓库
git push origin master--这个时候你会发现你的远程仓库已经有了你推送的文件hello.html
*八、IDEA集成Git
1.Version Control找到Git,填写自己的Git路径,点击OK

2.或者直接将.git文件复制粘贴到本项目下,会发现idea右上方出现Git按钮,右下角有显示提交历史

直接用idea可以都搞定;推送的时候有可能要输入用户名密码

参考视频
希望可以帮助到您
~感谢您的光临~

相关文章:
Git详解——安装、使用、搭建、IDEA集成
Git 看目录,篇幅挺长,越往后面越重要 目录一、git是什么?二、为什么要使用Git?三、版本控制工具四、git下载安装以及环境配置五、git基本命令六、git项目搭建七、远程仓库怎么搞?git,gitlab,github,gitee区别八、ide…...
【JavaSE】Java基础语法(二十一):内部类
文章目录 1. 内部类的基本使用2. 成员内部类3. 局部内部类4. 匿名内部类5. 匿名内部类在开发中的使用(应用) 1. 内部类的基本使用 内部类概念 在一个类中定义一个类。举例:在一个类A的内部定义一个类B,类B就被称为内部类 内部类定…...
Ceph应用
//存储类型 块存储 一对一,只能被一个主机挂载使用,数据以块为单位进行存储,典型代表: 硬盘 文件存储 一对多,能被多个主机同时挂载使用,数据以文件的形式存储的(元数据和实际数据是分开存储的),并且有…...
Oxford online English-Chair a Meeting 05/29
Part1-Welcoming attendees and starting the meeting Getting people’s attention If I could have your attention, please. Could I have your attention, please? Good afternoon, everyone. -> Good afternoon, everyone, could I have your attention, please?…...
LeetCode: 二叉树的直径(java)
二叉树的直径 leetcode 543题。原题链接题目描述解题代码二叉树专题 leetcode 543题。原题链接 543题:二叉树的直径 题目描述 给你一棵二叉树的根节点,返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也…...
springboot+vue+java旅行旅游景点酒店预订出行订票系统eaog5
线上旅行信息管理系统要求实现以下功能: a.景点管理,展示景点的基础信息,介绍等信息。 b.酒店管理,展示酒店的基础信息,介绍等信息。 c.评价管理,可以查看景点或酒店的相关评价信息,客户消费完,…...
Linux :: 【基础指令篇 :: 用户管理:(2)】::设置用户密码(及本地Xshell 登录云服务器操作演示) :: passwd
前言:本篇是 Linux 基本操作篇章的内容! 笔者使用的环境是基于腾讯云服务器:CentOS 7.6 64bit。 学习集: C 入门到入土!!!学习合集Linux 从命令到网络再到内核!学习合集 目录索引&am…...
img[:, :, ::-1] 通俗理解
👨💻个人简介: 深度学习图像领域工作者 🎉工作总结链接:https://blog.csdn.net/qq_28949847/article/details/128552785 链接中主要是个人工作的总结,每个链接都是一些常用demo,…...
基于springboot+vue+elementui的健身房会员管理系统的
为了帮助用户更好的了解和理解程序的开发流程与相关内容,本文将通过六个章节进行内容阐述。 第一章:描述了程序的开发背景,程序运用于现实生活的目的与意义,以及程序文档的结构安排信息; 第二章:描述了程序…...
在酒店房间中的数据库索引
如果你经常去酒店,你会看到一块类似下面的标牌,指引你到达房间。这能够帮助你方便快速地找到房间,特别是当酒店拥有许多房间时。 以一个有9层的酒店为例。你的房间号是917。第一步是找到你的房间在哪一层,通常第一个数字表示楼层…...
Zookeeper学习---2、客户端API操作、客户端向服务端写数据流程
1、客户端API操作 1.1 IDEA 环境搭建 前提:保证 hadoop102、hadoop103、hadoop104 服务器上 Zookeeper 集群服务端启动。 1、创建一个工程:Zookeeper 2、添加pom文件 <?xml version"1.0" encoding"UTF-8"?> <project …...
Stack 栈的实现与应用
目录 1. 概念 2. 常用的栈的方法 2.1 方法 2.2 代码 3. 自己实现栈 3.1 构造MyStack 3.2 push() 3.3 ensureCapacity() 3.4 pop() 3.5 peek() 3.6 empty() 3.7 szie() 4. 栈的应用 1. 概念 栈(Stack)是一种数据结构&…...
CSDN中如何获得铁粉(用心篇)
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...
es 三 安装 es 安装kibana
目录 安装7.3.0 版本 下载地址 一个比一个快 页面测试访问 安装kibana 下载 Config/kibana.yml 配置修改开启中文 页面访问 安装7.3.0 版本 下载地址 一个比一个快 Index of /elasticsearch/ 下载中心 - Elastic 中文社区 下载中心 - Elastic 中文社区 官网下载 开箱…...
牛客HJ43迷宫问题 - 创建智能体通过策略自己找路
文章目录 问题描述思路代码C 问题描述 描述 定义一个二维数组 N*M ,如 5 5 数组下所示: int maze[5][5] { 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, }; 它表示一个迷宫,其中的1表示墙壁࿰…...
测试报告模板一
XX测试报告 文档作者: 编写日期: 项目经理: 批准日期: 文档修改纪录表 日期 制修人 修改内容描述 1. 测试项目描述 1.1 测试描述 项目名称...
抖音账号矩阵系统源码/技术开发搭建私有化部署开源
抖音SEO矩阵系统是基于抖音平台的搜索引擎优化技术的一种系统,其主要作用是通过一系列的技术手段,提高抖音视频的曝光和排名,使其获得更多的流量和粉丝。在本文中,我们将介绍抖音SEO矩阵系统的开发技术,包括系统设计、…...
OpenSSL加密解密文件
OpenSSL是一个开源的用以实现SSL协议的产品,它主要包括了三个部分:密码算法库、应用程序、SSL协议库。Openssl实现了SSL协议所需要的大多数算法。 下面介绍使用Openssl进行文件的对称加密操作。 一、Openssl支持的加密算法有: -aes-128-cbc…...
PAT A1070 Mooncake
1070 Mooncake 分数 25 作者 CHEN, Yue 单位 浙江大学 Mooncake is a Chinese bakery product traditionally eaten during the Mid-Autumn Festival. Many types of fillings and crusts can be found in traditional mooncakes according to the regions culture. Now gi…...
MyBatis- plus
实战总结 1.批量插入性能 1.批量插入性能差的原因 使用saveBatch()方法时, MySQL JDBC驱动在默认情况下会无视executeBatch()语句,把我们期望批量执行的一组sql语句拆散,一条一条地发给MySQL数据库,批量插入实际上是单条插入&a…...
React 第五十五节 Router 中 useAsyncError的使用详解
前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...
VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
【WiFi帧结构】
文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...
2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...
Element Plus 表单(el-form)中关于正整数输入的校验规则
目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入(联动)2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...
力扣热题100 k个一组反转链表题解
题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...
Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换
目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...
wpf在image控件上快速显示内存图像
wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像(比如分辨率3000*3000的图像)的办法,尤其是想把内存中的裸数据(只有图像的数据,不包…...
