Git GitHub Gitee

article/2025/7/13 14:04:49

一、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.团队协作机制

  1. 团队内协作

  2. 跨团队协作

二、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_rsaid_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忽略文件

  1. 在刚刚用户目录创建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
  1. 在git.config中添加保存

2.定位git程序

3.初始化&添加&提交

  1. 在终端git init 或者在idea的VCS里边点击create git repository

  2. 可以直接在项目根目录右键git-》add

  3. 同理,直接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

需要部署在服务器上


http://www.hkcw.cn/article/eyGqHCDPHt.shtml

相关文章

数据库管理-第332期 大数据已死,那什么当立?(20250602)

数据库管理332期 2025-06-02 数据库管理-第332期 大数据已死,那什么当立?(20250602)1 概念还是技术2 必然的大数据量3 离线到实时4 未来总结 数据库管理-第332期 大数据已死,那什么当立?(202506…

Java Netty 中处理粘包和半包问题的解决方案 | TCP消息完整性校验(XOR )

文章目录 引言I 处理TCP粘包和半包问题背景粘包问题的产生原因解决方案WebSocket中的粘包和半包问题及解决方案II Java Netty 中处理粘包和半包问题粘包和半包问题可以通过以下几种方式解决:使用分隔符解码器基于长度字段的解码器实现自定义解码器III TCP常见封装处理消息接收…

鸿蒙next系统以后会取代安卓吗?

点击上方关注 “终端研发部” 设为“星标”,和你一起掌握更多数据库知识 官方可没说过取代谁谁,三足鼎立不好吗?三分天下,并立共存。 鸿蒙基于Linux,有人说套壳;ios/macos基于Unix,说它ios开源了…

排便不是一件可以随意“延后”的事:长期便秘->直肠敏感性降低->功能性便秘->大便失禁

文章目录 引言知识扩展: 快乐排便的黄金姿势I 便秘并不是一种单一成因的疾病便秘成因临床治疗II 总是压抑排便,身体会发生的变化III 排便不是一件可以随意“延后”的事引言 排便是一种复杂的反射行为: 由“直肠充盈—产生便意—括约肌协调—排出”的完整生理链条完成的。 …

基于Spring Boot 电商书城平台系统设计与实现(源码+文档+部署讲解)

技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…

Golang——5、函数详解、time包及日期函数

函数详解、time包及日期函数 1、函数1.1、函数定义1.2、函数参数1.3、函数返回值1.4、函数类型与变量1.5、函数作参数和返回值1.6、匿名函数、函数递归和闭包1.7、defer语句1.8、panic和recover 2、time包以及日期函数2.1、time.Now()获取当前时间2.2、Format方法格式化输出日期…

HTTP详解

使用的工具:fiddler 一、请求和响应报文的结构 1.请求 ⾸⾏: [⽅法] [url] [版本]Header: 请求的属性, 冒号分割的键值对;每组属性之间使⽤\n分隔;遇到空⾏表⽰Header部分结束Body: 空⾏后⾯的内容都是Body. Body允许为空字符串. 如果Body存在, 则在Header中会有…

解决:install via Git URL失败的问题

为解决install via Git URL失败的问题,修改安全等级security_level的config.ini文件,路径如下: 还要重启: 1.reset 2.F5刷新页面 3.关机服务器,再开机(你也可以省略,试试) 4.Wind…

【小工具开发】通过Java实现批量修改文件名小工具

1. 创建Project(使用Gradle) 2.安装Gradle 修改 distributionUrlhttps\://mirrors.cloud.tencent.com/gradle/gradle-8.12-bin.zip 修改 distributionUrlhttps\://mirrors.cloud.tencent.com/gradle/gradle-8.12-all.zip 阅读了以下博客,发…

【AI智能体】Spring AI MCP 从使用到操作实战详解

目录 一、前言 二、MCP 介绍 2.1 什么是MCP 2.2 MCP 核心特点 2.3 MCP 核心价值 2.4 MCP 与Function Calling 区别 三、Spring AI MCP 架构介绍 3.1 整体架构 3.1.1 三层架构实现说明 3.2 服务端与客户端 3.2.1 MCP 服务端 3.2.1 MCP 客户端 3.3 MCP中SSE和STDIO区…

Python打卡DAY43

复习日 作业: kaggle找到一个图像数据集,用cnn网络进行训练并且用grad-cam做可视化 进阶:并拆分成多个文件 我选择ouIntel Image Classification | Kagglezz,该数据集分为六类,包含建筑、森林、冰川、山脉、海洋和街道…

香橙派3B学习笔记5:Linux文件系统分区_A/B系统分区

经过之前的多次分区失败导致系统重启无法进入,这次调整思路重新分区 ssh : orangepi本地ip 密码 : orangepi 操作系统发行版: 基于 Ubuntu 20.04.6 LTS(Focal Fossa)的定制版本,专门为 Orange …

第16讲、Odoo 18 序号(Sequence)详解

目录 序号系统概述底层实现原理常见序号规则使用方法与最佳实践案例分析:客户工单管理系统常见问题与解决方案总结 序号系统概述 Odoo 中的序号(Sequence)系统是一个用于生成唯一标识符的核心机制,主要用于为业务单据&#xff…

内存管理--《Hello C++ Wrold!》(8)--(C/C++)--深入剖析new和delete的使用和底层实现

文章目录 前言C/C内存分布new和deletenew和delete的底层定位new表达式 内存泄漏作业部分 前言 在C/C编程中,内存管理是理解程序运行机制的核心基础,也是开发高效、稳定程序的关键。无论是局部变量的存储、动态内存的分配,还是对象生命周期的…

Linux之进程间通信

目录 一、进程间通信介绍 1.1、进程间通信目的 1.2、进程间通信发展 1.3、进程间通讯分类 二、管道 三、匿名管道 3.1、示例代码 完整重定向问题: 3.2、⽤ fork 来共享管道原理 3.3、站在⽂件描述符⻆度-深度理解管道 3.4、站在内核⻆度-管道本质 3.5、…

京东轨迹验证码识别代码

一、简介 这个是最新的京东轨迹验证码,需要用户根据轨迹画出对应的曲线。这个和传统的验证码有较大的差异,有非常大的难度。经过长时间的研究,现在终于解决了它的识别问题。 这个是识别效果,和真实轨迹基本上重合,所以…

【Godot】如何导出 Release 版本的安卓项目

在使用 Godot 引擎开发安卓游戏或应用时,发布到应用市场(如 Google Play、华为应用市场等)通常需要生成一个 Release 版本的 .apk 包,而非 Debug 版本。本文将详细介绍如何将 Godot 项目导出为 Release 版本的安卓项目&#xff0c…

哈喽,我是钓鱼的肝

我嘛,一个五年级的小猴子,哦不,小孩子,给大家看看我长什么样子 呃,放错了 别想了,等你关注我再说 我写博客的缘由就是想让大家一起见证我的进步,二是把我的学习成果让更多人看见,三…

【Linux】网络--网络层--IP协议

个人主页~ 网络--网络层--IP协议 一、基本概念二、IP报头格式三、网络划分四、私有IP和公网IP五、路由路由表 六、与数据链路层之间的协议 一、基本概念 IP 协议是用于在互联网上进行数据传输的一种网络层协议,它为不同网络中的设备提供了一种统一的方式来交换数据…

MCP (模型上下文协议):AI界的“USB-C”标准,开启大模型应用新纪元

今天我们来聊聊一个可能深刻改变 AI 应用开发模式的新技术——MCP (Model Context Protocol,模型上下文协议)。这是由 Anthropic 公司(旗下拥有知名大模型 Claude)提出的一项旨在统一大模型与外部世界交互方式的“万能接口”。不妨把它想象成…