当前位置: 首页 > article >正文

Git、Github和Gitee完整讲解:丛基础到进阶功能

第一部分:Git 是什么?

比喻:Git就像是一本“时光机日记本”

  • 每一段代码的改动,Git都会帮你记录下来,像是在写日记。
  • 如果出现问题或者想查看之前的版本,Git可以带你“穿越回过去”,找到任意时间点的代码状态。

Git的主要特点:

1.版本控制 : 每次提交都像写了一篇新的日记,保存你的开发成果。
2.分支管理:分支就像章节,可以并行开发而互不干扰。
3.分布式 :每个人都拥有完整的“日记本”

第二部分:Github和Gitee是什么?

Github:全球化的代码社交云平台

  • 比喻:Github是“全球代码图书馆”。
  • 你可以把你的代码(你的日记)上传到Github ,随时随地访问,并于他人协作开发,甚至分享给全世界。
  • 优势:拥有庞大的开源社区,是学习和参与开源项目的最佳平台。

Gitee:中国本地化的代码托管平台CN

  • 比喻:Gitee是Github的“中国版伙伴”
  • 优势:速度快、对国内开发者友好,能与本地工具(如钉钉、企业微信)无缝集成
  • 常用于企业内部项目或私有化部署有需求的团队。

第三部分:Git常用命令及SSH配置

  • SSH:安全认证和便捷连接
    1.比喻:SSH就像‘为你的钥匙加上指纹认证’,确保只有你能开门。
    2.SSH允许在本地和远程仓库之间安全通信,并省去推送或拉取代码时输入密码的麻烦。
功能命令比喻
配置用户名和邮箱git config --global user.name “你的名字” git config --global user.email “你的邮箱”设置“署名”,每次提交都会标明是谁的贡献
初始化仓库git init新建一个“时光日记本”,准备开始记录代码版本
添加文件到暂存区git add 文件名把草稿整理好,放到提交的“草稿区”
提交到本地仓库git commit -m “提交说明”把草稿本写进日记本,并附上说明
拉取代码git pull origin 分支名从远程仓库拉取最新的代码
推送代码到远程仓库git push origin 分支名把本地仓库的代码同步上传到远程仓库
克隆远程仓库git clone 仓库地址下载别人的代码到本地
查看状态git status检查当前代码的变化情况
查看提交历史git log查看代码的提交记录,回顾开发的“时间线”
创建分支git branch 分支名为不同功能开发创建独立章节,不干扰主线内容。
切换分支git checkout 分支名从一个章节切换到另一个章节
合并分支git merge 分支名把不同章节的内容合并到主线

SSH配置步骤

1.配置个人信息

git config --global user.name "你的名字"
git config --global user.email "你的邮箱"

2.生成SSH秘钥

ssh-keygen -t rsa -C "你的邮箱"
# -t rsa:使用RSA算法生成秘钥
# -C: 添加备注,通常是你的邮箱地址

3.添加公钥到远程仓库

Github:

进入Settings -> SSH and GPG Keys -> New SSH Key,粘贴公钥并保存。

Gitee:

进入 设置->安全设置->SSH 公钥,粘贴公钥并保存

4.测试连接
测试Github:

ssh -T git@github.com

测试Gitee:

ssh -T git@gitee.com

5.配置多个 SSH 密钥(可选)
如果同时使⽤ GitHub 和 Gitee,可以为它们配置不同的 SSH 密钥。
在 ~/.ssh/config ⽂件中添加以下内容:

Host github.com
	HostName github.com
	User git
	IdentityFile ~/.ssh/id_rsa
	
Host gitee.com
	HostName gitee.com
	User git
	IdentityFile ~/.ssh/id_rsa_gitee

第四部分:GitHub 和 Gitee 的核⼼功能详解

在这里插入图片描述

第五部分:总结与对⽐

在这里插入图片描述


http://www.kler.cn/a/533973.html

相关文章:

  • SpringCloud速通教程
  • 【JavaScript】《JavaScript高级程序设计 (第4版) 》笔记-Chapter3-语言基础
  • 25.02.04 《CLR via C#》 笔记14
  • 深入理解Spring框架的核心概念与使用
  • 昆仑万维Java开发面试题及参考答案
  • static成员变量的本质?静态变量?静态类有什么意义?全局变量?类函数?
  • 鸿蒙Harmony-Refresh 容器组件
  • 【kafka的零拷贝原理】
  • [Java]函数式编程
  • 基于微信小程序的居住证申报系统设计与实现(LW+源码+讲解)
  • SpringBoot扩展篇:@Scope和@Lazy源码解析
  • Scala语言的人工智能
  • 搭建集成开发环境PyCharm
  • vue2-为啥data属性是一个函数而不是对象
  • 基于SpringBoot的在线远程考试系统的设计与实现(源码+SQL脚本+LW+部署讲解等)
  • [创业之路-276]:从燃油汽车到智能汽车:工业革命下的价值变迁
  • Nginx高并发性能优化
  • vue2-key的原理与作用
  • 开源安全一站式构建!开启企业开源治理新篇章
  • Java 中 LinkedList 的底层源码
  • 【后端开发】系统设计101——通信协议,数据库与缓存,架构模式,微服务架构,支付系统(36张图详解)
  • 在C#中使用DeepSeek API实现自然语言处理、文本分类、情感分析等
  • HTML语言的软件工程
  • flutter 专题四十七 Flutter 应用启动流程分析
  • 【力扣】240.搜索二维矩阵 II
  • 4 前端前置技术(上):AJAX技术、Axios技术(前端发送请求)