Git管理源代码、git简介,工作区、暂存区和仓库区,git远程仓库github,创建远程仓库、配置SSH,克隆项目
学习目标
- 能够说出git的作用和管理源代码的特点
- 能够如何创建git仓库并添加忽略文件
- 能够使用add、commit、push、pull等命令实现源代码管理
- 能够使用github远程仓库托管源代码
- 能够说出代码冲突原因和解决办法
- 能够说出 git 标签的作用
- 能够使用使用git实现分支创建,合并操作
一、git简介
Git 是目前世界上最先进的分布式版本控制系统
作用:源代码管理,源代码管理方便多人协同开发和方便版本控制
Git的诞生
- 作者是 Linux 之父:Linus Benedict Torvalds
- 当初开发 Git 仅仅是为了辅助 Linux 内核的开发(管理源代码)
git 开发时间表
- git 的产生是 Linux Torvals 在无奈被逼的情况下创造的,时间历程:
- 2005 年 4 月3 日开始开发 git
- 2005 年 4 月 6 日项目发布
- 2005 年 4 月 7 日 Git 开始作为自身的版本控制工具
- 2005 年 4 月 18 日发生第一个多分支合并
- 2005 年 4 月 29 日 Git 的性能达到 Linux 预期
- 2005年 7 月 26 日 Linux 功成身退,将 Git 维护权交给 Git 另一个主要贡献者 Junio C Hamano,直到现在
Git 迅速成为最流行的分布式版本控制系统,尤其是 2008 年,GitHub 网站上线了,它为开源项目免费提供 Git 存储,无数开源项目开始迁移至 GitHub,包括 jQuery,PHP,Ruby 等等
Git管理源代码特点
-
1.
Git是分布式管理.服务器和客户端都有版本控制能力,都能进行代码的提交、合并、...
-
2.
Git会在根目录下创建一个.git隐藏文件夹,作为本地代码仓库 -
Git操作流程图解
Git服务器 --> 本地仓库 --> 客户端 --> 本地仓库 --> Git服务器
二、工作区暂存区和仓库区

工作区
- 对于
添加、修改、删除文件的操作,都发生在工作区中
暂存区
- 暂存区指将工作区中的操作完成小阶段的存储,是版本库的一部分
仓库区
- 仓库区表示个人开发的一个小阶段的完成
- 仓库区中记录的各版本是可以查看并回退的
- 但是在暂存区的版本一旦提交就再也没有了
三、Git单人本地仓库操作
- 课程目标:学习常用的Git终端命令
- 提示:本地仓库是个
.git隐藏文件
以下为演示Git单人本地仓库操作
-
1.git安装,已安装

-
2.查看git安装结果
git -

-
3.创建项目
-
创建
test文件夹,表示是工作项目
E:\downloads\study\FL_code\GitStudy\test
-
4.创建本地仓库
- 进入到
test,并创建本地仓库.git -
新创建的本地仓库
.git是个空仓库cd testgit init

3.创建本地仓库.git后
5.配置个人信息
git config user.name '张三'git config user.email 'zhangsan@qq.com'


6.新建py文件
-
在项目文件
test里面创建login.py文件,用于版本控制演示
7.查看文件状态
- 红色表示新建文件或者新修改的文件,都在工作区.
- 绿色表示文件在暂存区
-
新建的
login.py文件在工作区,需要添加到暂存区并提交到仓库区git status


8.将工作区文件添加到暂存区
# 添加项目中所有文件git add .或者# 添加指定文件git add login.py


9.将暂存区文件提交到仓库区
commit会生成一条版本记录-
-m后面是版本描述信息git commit -m '版本描述'


10.接下来就可以在login.py文件中编辑代码
- 代码编辑完成后即可进行
add和commit操作 -
提示:添加和提交合并命令
git commit -am "版本描述" -
提交两次代码,会有两个版本记录
11.查看历史版本
git log或者git reflog



git reflog 可以查看所有分支的所有操作记录(包括commit和reset的操作),包括已经被删除的commit记录,git log 则不能察看已经删除了的commit记录
12.回退版本
-
方案一:
HEAD表示当前最新版本HEAD^表示当前最新版本的前一个版本HEAD^^表示当前最新版本的前两个版本,以此类推...HEAD~1表示当前最新版本的前一个版本-
HEAD~10表示当前最新版本的前10个版本,以此类推...git reset --hard HEAD^

方案二:当版本非常多时可选择的方案
-
通过每个版本的版本号回退到指定版本
git reset --hard 版本号


13.撤销修改
- 只能撤销工作区、暂存区的代码,不能撤销仓库区的代码
-
撤销仓库区的代码就相当于回退版本操作
-
撤销工作区代码
-
新加代码
num3 = 30,不add到暂存区,保留在工作区git checkout 文件名
-
-

撤销暂存区代码
-
新加代码
num3 = 30,并add到暂存区# 第一步:将暂存区代码撤销到工作区 git reset HEAD 文件名 # 第二步:撤销工作区代码 git checkout 文件名



四、Git远程仓库Github
提示:Github网站作为远程代码仓库时的操作和本地代码仓库一样的,只是仓库位置不同而已!
- 准备Git源代码仓库
https://github.com/ - 准备经理的文件
Desktop/manager/ - 准备张三的文件
Desktop/zhangsan/
4.1 创建远程仓库
以下操作为演示在Github网站上创建远程仓库
-
1.登陆注册Github
-
2.创建仓库入口


-
3.编辑仓库信息



-
4.仓库创建完成

5.查看仓库地址
4.2 配置SSH
选择SSH操作
-
如果某台电脑需要与
Github上的仓库交互,那么就要把这台电脑的SSH公钥添加到这个Github账户上 -
1.配置SSH公钥入口


2.生成SSH公钥
ssh-keygen -t rsa -C "xiongsqiang@qq.com"



-
3.配置SSH公钥


-
补充:删除旧的秘钥
- 删除
~/.ssh目录,这里存储了旧的密钥
rm -r .ssh
- 删除
SSH操作报错
解决方案为
eval "$(ssh-agent -s)"
ssh-add

4.3 克隆项目
- 准备经理的文件E:\downloads\study\FL_code\GitStudy\manager
- 准备张三的文件
E:\downloads\study\FL_code\GitStudy\zhangsan
经理的工作
-
立项:克隆远程仓库+配置身份信息+创建项目+推送项目到远程仓库
-
1.克隆远程仓库的命令
cd E:\downloads\study\FL_code\GitStudy\managergit clone git@github.com:xsq13579/info.git -
2.克隆远程仓库到本地

3.克隆成功后查看经理的文件
4.配置经理身份信息
cd E:\downloads\study\FL_code\GitStudy\manager\infogit config user.name '经理'git config user.email 'xiongsqiang@qq.com'


5.创建项目
创建项目文件,里面有login.py文件

-
6.推送项目到远程仓库
# 工作区添加到暂存区git add .# 暂存区提交到仓库区git commit -m '立项'# 推送到远程仓库git push


-
在 push 的时候需要设置账号与密码,该密码则是 github 的账号与密码
-
如果在每次 push 都需要设置账号与密码,那么可以设置记住密码
设置记住密码(默认15分钟): git config --global credential.helper cache 如果想自己设置时间,可以这样做(1小时后失效): git config credential.helper 'cache --timeout=3600' 长期存储密码: git config --global credential.helper store在以后的项目开发过程中,Pycharm 可以自动记住密码
-
张三的工作
-
获取项目:克隆项目到本地、配置身份信息
-
1.克隆项目到本地
cd E:\downloads\study\FL_code\GitStudy\zhangsangit clone https://github.com/xsq13579/info.git


2.克隆成功后查看张三的文件
-
3.配置张三身份信息
cd E:\downloads\study\FL_code\GitStudy\zhangsan\infogit config user.name '张三'git config user.email 'xiongsqiang@qq.com'
张三身份信息配置成功后即可跟经理协同开发同一个项目


学习导航:http://www.xqnav.top
相关文章:
Git管理源代码、git简介,工作区、暂存区和仓库区,git远程仓库github,创建远程仓库、配置SSH,克隆项目
学习目标 能够说出git的作用和管理源代码的特点能够如何创建git仓库并添加忽略文件能够使用add、commit、push、pull等命令实现源代码管理能够使用github远程仓库托管源代码能够说出代码冲突原因和解决办法能够说出 git 标签的作用能够使用使用git实现分支创建,合并…...
【机器学习】机器学习与时间序列分析的融合应用与性能优化新探索
文章目录 引言第一章:机器学习在时间序列分析中的应用1.1 数据预处理1.1.1 数据清洗1.1.2 数据归一化1.1.3 数据增强 1.2 模型选择1.2.1 自回归模型1.2.2 移动平均模型1.2.3 长短期记忆网络1.2.4 卷积神经网络 1.3 模型训练1.3.1 梯度下降1.3.2 随机梯度下降1.3.3 A…...
执行力不足是因为选择模糊
选择模糊:执行力不足的根源 选择模糊是指在面对多个选项时,缺乏明确的目标和方向。这种模糊感会导致犹豫不决,进而影响我们的执行力。 选择模糊的表现: 目标不明确,不知道应该做什么。优先级混乱,不清楚…...
力扣 225题 用队列实现栈 记录
题目描述 请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。实现 MyStack 类: void push(int x) 将元素 x 压入栈顶。 int pop() 移除并返回栈顶元素…...
中英双语介绍意大利(Italy):有哪些著名景点、出名品牌?
中文版 意大利概述 意大利,位于欧洲南部,是一个以其悠久的历史、丰富的文化遗产和美丽的自然风光而闻名的国家。意大利不仅是文艺复兴的发源地,还拥有众多世界著名的城市、景点和品牌。 著名城市 罗马(Rome)&#x…...
Python【打包exe文件两步到位】
Python打包Exe 安装 pyinstaller(pip install pyinstaller) 执行打包命令(pyinstaller demo.py) 打完包会生成 dist 文件夹,如下如...
基于模型预测控制的PMSM系统速度环控制理论推导及仿真搭建
模型预测控制(Model Predictive Control, MPC)是一种先进的控制策略,广泛应用于工业控制中。它可以看作是一种最优控制方法,利用对象的动态模型来预测其状态的未来行为,并根据每个采样时间点特定性能目标函数的优化来确…...
【PYG】GNN和全连接层(FC)分别在不同的类中,使用反向传播联合训练,实现端到端的训练过程
文章目录 基本步骤GNN和全连接层(FC)联合训练1. 定义GNN模型类2. 定义FC模型类3. 训练循环中的联合优化解释完整代码 GNN和全连接层(FC)分别使用不同的优化器和学习率分别进行参数更新解释 基本步骤 要从GNN(图神经网…...
vue3使用方式汇总
1、引入iconfont阿里图库图标: 1.1 进入阿里图标网站: iconfont阿里:https://www.iconfont.cn/ 1.2 添加图标: 1.3 下载代码: 1.4 在vue3中配置代码: 将其代码复制到src/assets/fonts/目录下࿱…...
Turborepo简易教程
参考官网:https://turbo.build/repo/docs 开始 安装全新的项目 pnpm dlx create-turbolatest测试应用包含: 两个可部署的应用三个共享库 运行: pnpm install pnpm dev会启动两个应用web(http://localhost:3000/)、docs(http://localhost…...
初中物理知识点总结(人教版)
初中物理知识点大全 声现象知识归纳 1 .声音的发生:由物体的振动而产生。振动停止,发声也停止。 2.声音的传播:声音靠介质传播。真空不能传声。通常我们听到的声音是靠空气传来的。 3.声速:在空气中传播速度是:340…...
ChatGPT-4o大语言模型优化、本地私有化部署、从0-1搭建、智能体构建等高级进阶
目录 第一章 ChatGPT-4o使用进阶 第二章 大语言模型原理详解 第三章 大语言模型优化 第四章 开源大语言模型及本地部署 第五章 从0到1搭建第一个大语言模型 第六章 智能体(Agent)构建 第七章 大语言模型发展趋势 第八章 总结与答疑讨论 更多应用…...
【开源项目】LocalSend 局域网文件传输工具
【开源项目】LocalSend 局域网文件传输工具 一个免费、开源、跨平台的局域网传输工具 LocalSend 简介 LocalSend 是一个免费的开源跨平台的应用程序,允许用户在不需要互联网连接的情况下,通过本地网络安全地与附近设备共享文件和消息。 项目地址&…...
ARM/Linux嵌入式面经(十一):地平线嵌入式实习
地平线嵌入式实习面经 1.自我介绍 等着,在给大哥们准备了。 2.spi与iic协议可以连接多个设备吗?最多多少个?通讯时序。 这是几个问题,在回答的时候。不要一问就开口,花几秒钟沉吟思考整理一下自己的思路。 这个问题问了几个点?每个点的回答步骤。 是我的话,我会采用以…...
基于Redis的分布式锁
分布式场景下并发安全问题的引发 前面通过加锁解决了单机状态下一人一单的问题,但是当出现了分布式,前面的加锁形式不再适用 ,每个jvm有一个自己的锁监视器,只能被内部线程获取,其他jvm无法使用,那么多台j…...
如何将 Apifox 的自动化测试与 Jenkins 集成?
CI/CD (持续集成/持续交付) 在 API 测试 中的主要目的是为了自动化 API 的验证流程,确保 API 发布到生产环境前的可用性。通过持续集成,我们可以在 API 定义变更时自动执行功能测试,以及时发现潜在问题。 Apifox 支持…...
【FFmpeg】av_write_frame函数
目录 1.av_write_frame1.1 写入pkt(write_packets_common)1.1.1 检查pkt的信息(check_packet)1.1.2 准备输入的pkt(prepare_input_packet)1.1.3 检查码流(check_bitstream)1.1.4 写入…...
【算法专题】双指针算法
1. 移动零 题目分析 对于这类数组分块的问题,我们应该首先想到用双指针的思路来进行处理,因为数组可以通过下标进行访问,所以说我们不用真的定义指针,用下标即可。比如本题就要求将数组划分为零区域和非零区域,我们不…...
Lock与ReentrantLock
在 Java 中,Lock 接口和 ReentrantLock 类提供了比使用 synchronized 方法和代码块更广泛的锁定机制。 简单示例: import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock;public class ReentrantLockExample {pr…...
ARM/Linux嵌入式面经(十三):紫光同芯嵌入式
static关键字 static关键字一文搞懂这个知识点,真的是喜欢考!!! stm32启动时如何配置栈的地址 在STM32启动时配置栈的地址是一个关键步骤,这通常是在启动文件(如startup_stm32fxxx.s,其中xxx代表具体的STM32型号)中完成的。 面试者回答: STM32启动时配置栈的地址主…...
5个终极postcss-cssnext调试技巧:使用开发者工具深度分析CSS转换过程
5个终极postcss-cssnext调试技巧:使用开发者工具深度分析CSS转换过程 【免费下载链接】postcss-cssnext postcss-cssnext has been deprecated in favor of postcss-preset-env. 项目地址: https://gitcode.com/gh_mirrors/po/postcss-cssnext PostCSS-cssne…...
S2-Pro Markdown文档大师:Typora风格的高效写作与排版助手
S2-Pro Markdown文档大师:Typora风格的高效写作与排版助手 1. 技术文档写作的新选择 作为一名长期与技术文档打交道的工程师,我深知写作过程中的痛点:构思结构耗时、术语使用不规范、排版效率低下。S2-Pro的出现,为这些问题提供…...
Quartus II ROM IP核的配置与高效初始化文件生成技巧
1. ROM IP核基础与使用场景 在FPGA开发中,ROM(Read-Only Memory)是一种常用的存储元件。与RAM不同,ROM中的数据在配置后是固定不变的,非常适合存储不需要频繁修改的配置数据、查找表或预置参数。Quartus II作为业界主流…...
Apache Doris存储引擎实战:从LSM-Tree到列式存储的优化技巧
Apache Doris存储引擎实战:从LSM-Tree到列式存储的优化技巧 当你在深夜收到告警,发现Doris集群的写入延迟突然飙升到秒级;当你面对业务方"为什么查询变慢了"的灵魂拷问,却找不到明确原因——这些场景背后,往…...
WordPress内容组织终极指南:Argon主题标签与分类管理新策略
WordPress内容组织终极指南:Argon主题标签与分类管理新策略 【免费下载链接】argon-theme 📖 Argon - 一个轻盈、简洁的 WordPress 主题 项目地址: https://gitcode.com/gh_mirrors/ar/argon-theme Argon主题是一款轻盈、简洁的WordPress主题&…...
为什么你的经典游戏在Windows 10/11上无法运行?DDrawCompat完美解决方案
为什么你的经典游戏在Windows 10/11上无法运行?DDrawCompat完美解决方案 【免费下载链接】DDrawCompat DirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11 项目地址: https://gitcode.com/gh_…...
Keil中内存概念:Flash、SRAM、RO、RW、ZI、.data、.bss、heap、stack、MAP文件
此文章转载于微信公众号:嵌入式电子学习,只作为笔记备忘录使用 内存属性 理解Keil MDK(或ARM编译器)中关于程序内存布局的一些基本概念(RO、RW、ZI和.data、.bss、heap、stack、Flash、SRAM)。这些概念对…...
猫抓扩展故障排除指南:从问题诊断到深度优化
猫抓扩展故障排除指南:从问题诊断到深度优化 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 问题图谱:三级故障层级分析 基…...
小米平板5变身Windows工作站:开源驱动如何重塑移动生产力边界?
小米平板5变身Windows工作站:开源驱动如何重塑移动生产力边界? 【免费下载链接】MiPad5-Drivers https://github.com/Project-Aloha/windows_oem_xiaomi_nabu 项目地址: https://gitcode.com/gh_mirrors/mi/MiPad5-Drivers 当一款Android平板遇上…...
AI辅助开发实践:利用快马平台智能扩展用户行为分析分群功能
最近在做一个用户管理系统的功能扩展,需要增加智能用户分群功能。这个需求听起来简单,但实际操作中涉及到数据整合、算法选择、可视化展示等多个环节。好在发现了InsCode(快马)平台,它的AI辅助开发功能帮了大忙。 需求分析阶段 先用平台的AI对…...
