Git GitHub Gitee
一、Git
是一个免费、开源的分布式版本控制系统。
版本控制:一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。它最重要的就是可以记录文件修改历史记录,从而让用户可以看历史版本,方便版本切换。
1.和集中式版本控制的不同:(好处)
1.在服务器断网的时候也能开发(因为版本控制是在本地进行的),只是无法推送而已。
2.每个客户端保存的也都是整个完整的项目(包含历史记录,更加安全)。
2.代码托管中心(远程库)
局域网:GitLab
互联网:GitHub(外网) Gitee 码云(国内)
在工作区写代码-》git add 添加暂存区(临时存储)-》git commit 提交本地库->远程库
3.安装
https://www.bilibili.com/video/BV1vy4y1s7k6?vd_source=2e59157694b34bea872c5ba2c5a5de9f&spm_id_from=333.788.player.switch&p=7
4.常用命令
# 设置全局用户名(签名)
git config --global user.name 你的用户名
# 设置全局邮箱
git config --global user.email 你的邮箱
#初始化本地库
git init
#查看本地库状态
git status
#添加暂存区
git add 文件名
#提交本地库
git commit -m "日志信息(可以写版本)" 文件名
#查看版本信息 即日志信息
git reflog
#查看详细的日志信息
git log
#版本穿梭
git reset --hard 版本号
注意:
-
签名是为了区分不同操作者身份,签名信息在每一个版本提交信息中能够看到,依次确认本次提交是谁做的。Git首次安装必须设置用户签名,否则无法提交代码。
-
Git初始化完,在该项目所在文件夹下边有一个.git隐藏文件夹。
-
Git版本穿梭,本质上就是底层指针的移动。
5.分支操作
在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着可以把自己的工作从开发主线上分离开来,开发自己分支的时候不会影响主线分支的运行。
对初学者而言,可以将其简单理解成副本,一个分支就是一个单独的副本。(分支底层也是指针的引用)
同时并行推进多个功能开发,提高开发效率。
各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。
#查看分支
git branch -v
#创建分支
git branch 分支名
#切换分支
git checkout 分支名
#合并分支
git merge 要合并的分支名
-
产生冲突原因:合并分支的时候,两个分支在同一个文件的同一个位置有两套完全不同的修改。git无法决定使用哪一个,必须人为决定。
-
解决冲突:删除不要的行,保证原来总行数不变,保存文件,添加暂存区,执行提交即可。(但此时提交不能带文件名,发现后面的merging消失,即当前所在分支合并成功)
-
切换分支的本质就是移动head指针。
6.团队协作机制
-
团队内协作
-
跨团队协作
二、GitHub
1.创建远程库(直接'+'就好啦)
2.操作远程库
#创建远程库别名
git remote add 别名 远程地址
#查看当前远程别名
git remote -v
#推送
git push 别名 分支
#拉取远程库到本地库
git pull 别名 分支
#克隆远程库到本地
git clone 远程地址
-
克隆代码不需要登录账号
-
clone会做如下操作:1.拉取代码 2.初始化本地库 3、创建别名(默认origin)
3.团队内协作
进入github-》settings-》manage access-》invite a collaborator
被邀请人复制邀请函 accept
4.跨团队协作
点击fork->pull requests->new pull request->create pull request->merge pull request
5.SSH免密登录
//在c盘用户目录下运行git终端 运行下面命令 连敲三个回车
ssh-keygen -t rsa -C 邮箱地址
-
如果在这个地方没有找到且隐藏文件已经打开还是没有怎么办?
1.可能是没有执行成功。ls -al ~/.ssh 如果看到 id_rsa
和 id_rsa.pub
文件,说明已有密钥。
ls -a ~/ # -a 参数显示所有文件(包括隐藏文件)两个命令都可
2.SSH 密钥生成在其他位置:cd ~ && pwd -W
这会显示 ~
对应的 Windows 绝对路径(例如 C:/Users/lenovo
),如果输出不是 C:/Users/lenovo
,说明 Git Bash 的 ~
映射到了其他位置。
3.修改 Git Bash 的 HOME
设置,修改 Windows 环境变量 HOME
。在高级环境变量下,在用户变量部分,检查有没有HOME变量,如果存在,就修改为%USERPROFILE%;若不存在,可以 新建 一个 HOME
变量,值设为 %USERPROFILE%
。
-
复制公钥到个人中心的settings-》SSH and GDP keys->如下界面 添加成功
三、idea集成git
1.配置Git忽略文件
-
在刚刚用户目录创建txt文件,重命名为git.ignore 内容如下所示
# Compiled class file
*.class# Log file
*.log# BlueJ files
*.ctxt# Mobile Tools for Java (J2ME)
.mtj.tmp/# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rarhs_err_pid*.classpath
.project
.settings
target
.idea
*.iml
-
在git.config中添加保存
2.定位git程序
3.初始化&添加&提交
-
在终端git init 或者在idea的VCS里边点击create git repository
-
可以直接在项目根目录右键git-》add
-
同理,直接commit
4.切换版本
右下的两个指针,绿色的是当前分支的指针,黄色的是当前这个看到的界面的头指针
右键 找checkout那个选项
5.创建分支&切换分支&合并分支
四、idea集成GitHub
1.登录(账户密码或者使用token)
2.分享项目
VCS-》share project to github-》
3.推送拉取
右键git就有push pull
-
注意:要想push成功,一定要保证本地库的版本要比远程库的版本高!也就是说,在修改本地代码之前,要先检查代码版本,如果本地版本已经落后,要先pull拉取远程库,在修改提交推送。
4.克隆代码到本地
五、码云(Gitee)
https://gitee.com/
1.注册登录&创建远程库(和上边的一样步骤)
2.idea集成
默认没有Gitee,需要下载
重启idea 在version下边就有了gitee
3.导入github项目
在新建仓库的时候什么都不用填,到最下边点击导入已有仓库,复制url地址(http协议)导入即可。
六、Gitlab
需要部署在服务器上
相关文章:

Git GitHub Gitee
一、Git 是一个免费、开源的分布式版本控制系统。 版本控制:一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。它最重要的就是可以记录文件修改历史记录,从而让用户可以看历史版本,方便版本切换。 1.和集中式版本控制…...
《深度体验 Egg.js:打造企业级 Node.js 应用的全景指南》
🚀 核心亮点:Koa 的二次觉醒 企业级基因:阿里多年双十一验证的框架稳定性插件化架构:config.plugins 实现功能模块即插即用渐进式演进:从 50 行代码到 5 万行代码的无缝扩容能力 🔧 实战配置解析ÿ…...
蓝桥杯2118 排列字母
问题描述 小蓝要把一个字符串中的字母按其在字母表中的顺序排列。 例如,LANQIAO 排列后为 AAILNOQ。 又如,GOODGOODSTUDYDAYDAYUP 排列后为 AADDDDDGGOOOOPSTUUYYY。 请问对于以下字符串,排列之后字符串是什么? WHERETHEREIS…...
Python应用break初解
大家好!作为 Python 初学者,控制循环的执行是编程中的基础技能之一。在本文中,我们将深入探讨break语句的用途和用法,帮助您更好地理解和掌握这一强大的工具。 定义: break是 Python 中的一个保留关键字,用于在循环中提前终止循环…...

PLSQLDeveloper配置OracleInstantClient连接Oracle数据库
PL/SQLDeveloper配置Oracle Instant Client连接Oracle数据库 文章目录 PL/SQLDeveloper配置Oracle Instant Client连接Oracle数据库 1. Oracle Instant Client下载与配置1. Oracle Instant Client下载2. Oracle Instant Client解压配置1. 解压2. 配置 2. PL/SQL Developer下载、…...
高股息打底+政策催化增强+永续经营兜底
通过分析农业银行(政策红利高股息)与长江电力(垄断资源现金流堡垒)的共性,提炼出以下策略框架: 1. 核心筛选标准 • 高股息防御性:股息率>3%,分红率稳定(40%…...
双电机差速控制的MATLAB Simulink仿真方案,使用PWM和PID调节实现360°转向与速度控制_可复现,有问题请联系博主
以下是一个双电机差速控制的MATLAB Simulink仿真方案,使用PWM和PID调节实现360转向与速度控制。方案包含系统建模、控制策略和仿真实现。 系统模型 差速运动学模型: 线速度 ( v = \frac{v_r + v_l}{2} )角速度 ( \omega = \frac{v_r - v_l}{d} )其中 ( v_r, v_l ) 为右/左轮线…...

【Oracle】触发器
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 触发器基础概述1.1 触发器的概念与特点1.2 触发器的分类1.3 触发器的执行顺序 2. DML触发器2.1 基础DML触发器2.1.1 INSERT触发器2.1.2 UPDATE触发器2.1.3 DELETE触发器 2.2 高级DML触发器2.2.1 复合触发器2…...

基于深度学习的无人机轨迹预测
完整代码见文末 随着无人机技术的不断发展,无人机在农业、物流、监控等领域的应用日益广泛。精准的轨迹预测不仅能够提高无人机飞行的效率和安全性,还能在应对复杂环境下的突发状况时做出迅速反应。因此,基于深度学习的无人机轨迹预测已成为…...

git连接本地仓库以及gitee
参考:gitee创建新仓库并上传代码_gitee新建仓库导入代码-CSDN博客 git初始化以及添加git分支 在idea查看master主分支 报错 原因gitee推送更新失败问题记录:remote: error: hook declined to update refs/heads/master-CSDN博客 取消邮箱暴露...
使用Python和OpenCV实现图像识别与目标检测
在计算机视觉领域,图像识别和目标检测是两个非常重要的任务。图像识别是指识别图像中的内容,例如判断一张图片中是否包含某个特定物体;目标检测则是在图像中定位并识别多个物体的位置和类别。OpenCV是一个功能强大的开源计算机视觉库…...

麒麟v10系统的docker重大问题解决-不支持容器名称解析
今天给客户在麒麟v10Kylin-Server-V10-SP1下安装nextcloudonlyoffice的时候出现无法连接onlyoffice的问题,经过分析找到了是docker版本过低的原因,现在把解决思路和步骤分享给大家。 一、问题 用一键安装工具,给客户装好了系统,Nextcloud可以正常访问 但是访问nextcloud中的o…...

基于5G下行信号的模糊函数分析matlab仿真,对比速度模糊函数和距离模糊函数
目录 1.引言 2.算法仿真效果演示 3.数据集格式或算法参数简介 4.MATLAB部分程序 5.算法涉及理论知识概要 6.参考文献 7.完整算法代码文件获得 1.引言 模糊函数(Ambiguity Function, AF)是信号处理领域用于分析信号时频分辨能力的核心工具…...
Selenium自动下载浏览器驱动
为什么需要自动下载浏览器驱动? 血泪场景重现 新人入职第一天: 花3小时配置Chrome/Firefox驱动版本不匹配导致SessionNotCreatedException 浏览器自动更新后: 所有测试脚本突然崩溃手动查找驱动耗时长 终极解决方案:自动下载驱…...
数据库优化实战分享:高频场景下的性能调优技巧与案例解析
在实际开发与生产运维中,数据库的性能瓶颈往往是影响系统响应速度和用户体验的关键因素。尤其是在高并发访问、海量数据处理、复杂查询逻辑等高频场景下,数据库优化不仅仅是“锦上添花”,更是“雪中送炭”。本篇博文将结合实际项目经验&#…...

Redis 过期了解
Redis 版本:5.0 : 一:过期监听: Spring Data Redis 封装了 Redis 的 Pub/Sub 功能,提供了对 key 过期事件的监听支持。 1. 核心类:KeyExpirationEventMessageListener 这个抽象类是 Spring 提供的&#x…...
微信小程序前端面经
一、技术栈与编码能力(10min) 1. Vue 3 & Composition API Q1:请解释一下 ref 和 reactive 的区别?你在项目中是如何使用的? 答:ref是包装一个原始值或对象,通过.value访问,r…...
android 之 Tombstone
Android 系统中的 Tombstone 是记录 Native 层崩溃信息的关键日志文件,当应用或系统服务因严重错误(如内存访问异常、空指针解引用等)崩溃时自动生成。以下是其核心机制与分析方法详解: 一、Tombstone 的生成机制 触发条件 当 Na…...
六级作文模板笔记
旧模板 Today there is a growing awareness that mental well-being needs to be given as much attention as physical health. In the contemporary world where change is constant and knowledge is ever-expanding, mental well-being has become increasingly importan…...

JAVA理论-JAVA基础知识
1.Java 基础 知识 1.1 面向对象的特征(了解) 面向对象的特征:封装、继承、多态、抽象 封装:就是把对象的属性和行为(数据)结合为一个独立的整体,并尽量隐藏对象的内部细节,公开我希…...

免费无限使用GPT Plus、Claude Pro、Grok Super、Deepseek满血版
渗透智能-ShirtAI,可以免费无限使用GPT Plus、Claude Pro、Grok Super、Deepseek满血版、除此之外还能免费使用AI搜索、Gemini AI、AI照片修复、AI橡皮擦、AI去背景、AI智能抠图、AI证件照、OCR识别、在线思维导图、在线绘图工具、PDF工具箱、PDF翻译。 传送入口&a…...

SoloSpeech - 高质量语音处理模型,一键提取指定说话人音频并提升提取音频清晰度和质量 本地一键整合包下载
视频教程: 一个强大的语音分离和降噪软件 SoloSpeech 是由约翰霍普金斯大学、香港中文大学、南洋理工大学、清华大学及布拉格理工大学等多所高校共同主导开源的一个创新的语音处理项目,旨在解决在多人同时说话的环境中,准确提取并清晰呈现特定…...

深入解析 Java ClassLoader:揭开 JVM 动态加载的神秘面纱
大家好,这里是架构资源栈!点击上方关注,添加“星标”,一起学习大厂前沿架构! Java 之所以能实现“一次编写,到处运行”,很大程度得益于其虚拟机(JVM)强大的跨平台能力。…...

CICD实战(一) -----Jenkins的下载与安装
服务器IPJenkins192.168.242.153gitlab192.168.242.154 1、安装工具(可选,如果有就不需要安装) sudo yum install wget net-tools 2、关闭防火墙 #关闭防火墙(如果是云服务器部署,去安全组放通对应的端口即可) systemctl stop firewalld …...
【.net core】.KMZ文件解压为.KML文件并解析为GEOJSON坐标数据集。附KML处理多线(LineString)闭环问题
通过使用ZipFile解压KMZ文件,获取其中的KML文件,并解析KML文件,输出解析后的坐标数据集。 KML文件:地理信息的标准格式 解析后的坐标数据集输出格式(GEOJSON坐标数据集):[[[经度,纬度],[经度,纬度]]] 解…...
Python打卡训练营day46——2025.06.06
知识点回顾: 不同CNN层的特征图:不同通道的特征图什么是注意力:注意力家族,类似于动物园,都是不同的模块,好不好试了才知道。通道注意力:模型的定义和插入的位置通道注意力后的特征图和热力图 …...
网络资源缓存
前端性能优化是提升用户体验和页面响应速度的关键,可以从 网络优化、资源优化、缓存优化 三个方面系统地进行。以下是详细说明: 一、网络优化(减少请求数、降低延迟、提升加载速度) 减少 HTTP 请求数量 合并请求(CSS…...
Linux中 SONAME 的作用
🧠 一、从 -lexample 到 SONAME ✅ 假设你有以下文件结构: /libexample.so → libexample.so.1 /libexample.so.1 → libexample.so.1.0.0 /libexample.so.1.0.0 # SONAME: libexample.so.1/libexample.so.2 → libexample.so.2.0.0 /libexample.so.2.0…...

Devops系列---python基础篇二
1、列表 1.1 概念 格式: 名称 [ “元素1”,“元素2”,…] #定义一个列表 computer ["主机","键盘","显示器","鼠标"]类型方法用途查index(“元素”)查看元素索引位置count(“元素”)统计元素出现的次数reverse()倒序排…...
自定义事件wpf
// 自定义控件 public class MyCustomControl : Control { public static readonly RoutedEvent MyCustomEvent EventManager.RegisterRoutedEvent( "MyCustom", RoutingStrategy.Bubbling, typeof(RoutedEventHandler), typeof(MyCustomControl) ); public event R…...