【项目管理git】git学习

ps:所有东西都是个人理解

文章目录

  • 一、git是什么,它用来做什么?
  • 二、相关知识库
    • 2.1 简单的linux指令
    • 2.2 git配置指令
    • 2.3 git常见的指令
      • 2.3.1 Git的上传原理
      • 2.3.2 版本回退相关内容
    • 2.4 设置远程地址,本地上传到github
      • 2.4.1 ssh相关原理
      • 2.4.2 设置远程地址并配置

一、git是什么,它用来做什么?

都知道,在公司里面往往一个项目会由多个人共同协同编写,所以需要一个可以文件互通的渠道,之前用的是svn或者cvs。这个svn它就相当于是有个中央服务器,开发人员把代码写完之后提交到中央服务器。git就相当于是每个开发人员的主机上都可以保存文件,每一个节点都有完整的代码库。
对于个人来说,利用git来管理项目也很不错,比如说,我们需要修改一个功能代码,改之后发现不能用,这时候我们就可以利用git reset功能来恢复到前一个版本,然后后面觉得这个版本有用了又可以回到这个版本。所以fei chang you y

二、相关知识库

2.1 简单的linux指令

ls    #查看当前目录
cat   #查看文件内容
cat 文件1 文件2… > 汇总文件  #可以将前面的文件内容汇总到汇总文件中touch #创建文件
mkdir #创建文件夹rm a.txt  #删除文件
rmdir a   #删除文件夹vi 文件名    #vi编辑器
pwd   #显示当前操作的路径grep [选项] [模式] [文件]  #搜索
# 这里的选项可以是 -n 显示行号 -i 不区分大小写 -v 取反,即不包含需要的内容的行cp a b #复制文件,将a文件夹整体复制到b文件夹下
cp a/* b #将文件夹a下的所有文件都复制到b文件夹下mv a b #将a文件夹整体移动(剪切)到b文件夹下

结果展示
vi编辑器,有三种模式:普通模式,插入模式以及命令模式。
普通模式:用于浏览文件、移动光标、删除以及复制等操作。
插入模式:用于输入文本,像常规文本编辑器一样编辑文件内容。
命令模式:用于执行文件操作命令,如保存、退出、查找和替换等。
在这里插入图片描述
保存文件

#普通模式下输入
:w #保存当前文件
:w Newfie.txt #将文件保存到新的文件中
:q #仅退出文件
:wq #保存并退出
:q! #强制退出(不保存)

2.2 git配置指令

设置和查看用户邮箱和用户名

git config —global user.name "设置的用户名"  #设置用户名
git config —global user.name #查看用户名
git config —global user.email "设置的邮箱"
git config —global user.email #查看邮箱

初始化git本地仓库

git init

2.3 git常见的指令

2.3.1 Git的上传原理

git工作机制
git将提交文件的工作步骤区间分为工作区、暂存区以及仓库。从工作区到暂存区。

git ls-files -s #查看暂存区的文件列表
git ls-tree -r HEAD #查看仓库当前版本的文件列表

使用git add指令提交文件,从暂存区到仓库,使用的是git commit。其中从工作区到暂存区,我们可以一个一个文件上传,也可以整个文件夹上传,而git commit指令是一次性将暂存区中的所有修改内容均上传到仓库中。如下图所示。从这里我们也可以看出暂存区的作用是什么。svn中有一个概念叫做原子性提交,即要么这个操作内所有指令均操作,要不就均不操作。这里的暂存区就类似提交前的预览区,提供给用户试错成本。

git add 文件1 #将文件1提交到暂存区
git add . #将所有文件提交到暂存区
git status #查看当前git各个步骤区间文件状态
Git commit -m “对于本次操作的描述" #将暂存区的所有文件提交到仓库中,这里的-m是指messagegit log #查看历史提交记录
# git log [options] 这里的options 可以是 
# —all 显示所有分支
# —pretty=oneline 将提交信息显示为一行
# —abbrev-commit 使得输出的commitId更简短
# —graph 以图的形式显示

git工作机制
在这里插入图片描述

2.3.2 版本回退相关内容

git reset
git reset的作用:

  1. 撤销暂存区的更改:取消已加入暂存区(即staged)的文件。
  2. 撤销工作目录的更改:将工作目录中的文件恢复到某个指定的提交状态。
  3. 修改分支历史:通过改变分支的HEAD指针,来修改历史提交。

1) 文件的reset

#git reset <file> 可以将用git add添加到暂存区的文件

在这里插入图片描述
2)版本的reset

git reset [选项] 回退的版本号
git reset —hard 回退的版本号  #这个版本号可以去git log中寻找
# —hard 重置位置的同时,直接将working Tree工作目录、index暂存区及repository都重置成目标reset节点的内容,所以效果看起来等同于清空缓存区和工作区。
# —soft 重置位置的同时,保留working Tree工作目录和Index暂存区的内容,只让repository中的内容和reset目标节点保持一致,因此原节点和reset节点之间的【差异变更集】会放入Index暂存区中(Staged files)。所以效果看起来就是工作目录的内容不变,暂存区原有的内容也不变,只是原节点和Reset节点之间的所有差异都会放到暂存区中。
# —mixed(默认) 重置位置的同时,只保留working Tree工作目录的内容,但会将Index暂存区和Repository中的内容更改和reset目标节点一致,因此原节点和Reset节点之间的所有差异都会放到暂存区中。

在这里插入图片描述

2.4 设置远程地址,本地上传到github

这个首先需要连接本地与你的github仓库。这里选择的是ssh连接。

2.4.1 ssh相关原理

ssh登录原理
在这里插入图片描述
首先需要生成 ssh key
1) 创建ssh key

ssh-keygen -t rsa -C "github邮箱"

在这里插入图片描述
2) pbcopy 将后面文件里面的内容复制到剪切板,并开始服务,进行相关配置

#把生成的公钥复制在粘贴板上
pbcopy < ~/.ssh/id_ed25519.pub
#开启ssh-agent服务
eval "$(ssh-agent -s)# 设置配置文件,macOS 10.12.2以上的版本
touch ~/.ssh/config
#将SSH私钥存储在密钥链中。
ssh-add --apple-use-keychain ~/.ssh/id_ed25519

将下述文本写入config文件中:

Host github.comAddKeysToAgent yesUseKeychain yesIdentityFile ~/.ssh/id_ed25519

3) 将公钥写入github ssh key中
在这里插入图片描述

2.4.2 设置远程地址并配置

#查看当前远程地址
git remote -v
#添加新的远程地址
git remote add <name> <new-remote-url>
#修改远程地址
git remote set-url <旧remote的名字> <new-remote-url>
#删除远程地址
git remote remove <name>#将本地的分支上传到远程的分支
git push [-f] <远程主机名> <本地分支名>:<远程分支名>  #选项-f是强制覆盖的意思

在这里插入图片描述
这里的密码是从github上搞下来的token。
在这里插入图片描述
复制ssh远程地址,从仓库中提取。
在这里插入图片描述
2.5 添加文件至忽略列表
在文件夹下建立.gitignore文件。在文件里面写要忽略的文件。

2.6 git分支相关内容

#查看现有分支 view-existing-branch
git branch#创建新分支 — create a new branch
git branch <new-branch-name>#切换分支 switch branch
git checkout <target-branch-name>#切换并创建分支(如果不存在) —switch and create branch(if not exist) 
git checkout -b <branch-name>#分支合并 一个分支上的提交可以合并到另一个分支上 <merge the target branch into the current branch>
git merge <branch-name> #删除分支  —delete branch
git branch -d <branch-name>  #会做各种检查
git branch -D <branch-name>  #直接强制删除,不做任何检查  这个使用的场景是,你想要删除没有merge掉的分支,就是你修改的内容没有添加到主分支上的内容#显示分支信息
git branch -vv 
#功能1: 显示远程跟踪分支的信息,即本地分支与远程分支的对应情况
#功能2: 显示每个分支的最新提交信息
#功能3: 显示当前所在分支,’*’#将当前分支绑定到远程分支 —connect current local branch with the corresponding remote branch
git branch —set-upstream-to <远程仓库名>/<远程仓库分支名>

在这里插入图片描述
2.7 clone 克隆仓库到本地

git clone +远程地址名  #它默认是克隆下所有分支,想去特定的分支直接git checkout <分支名>就行#将远程地址的更新抓取到本地
git fetch
#将抓取到的更新合并到当前分支
git merge origin/master#抓取并合并到当前分支
git pull

在这里插入图片描述
git merge合并的快进模式
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/73488.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【性能优化】MySQL 生产环境 SQL 性能优化实战案例

&#x1f680; MySQL 生产环境 SQL 性能优化实战案例 &#x1f3d7;️ 背景介绍 最近在处理一个项目时&#xff0c;发现在生产环境的工作流相关接口中&#xff0c;某些查询的执行时间异常缓慢&#xff0c;尽管数据量仅为 2 万条。经过分析&#xff0c;发现以下 SQL 语句执行非…

python速通小笔记-------1.容器

1.字符串的标识 字符串需要用“”标识。 与c不同&#xff0c;python 写变量时 不需要标明数据类型每一行最后不需要加&#xff1b; 2.print函数的使用 与c中的printf函数一致 3.运算符 4.字符串str操作 1. 实现字符串拼接 2.% 实现字符串初始化 %s占位会把变量强制转变为…

【SpringMVC】常用注解:@SessionAttributes

1.作用 用于多次执行控制器方法间的参数共享 2.属性 value&#xff1a;用于指定存入的属性名称 type&#xff1a;用于指定存入的数据类型 3.示例 先写JSP代码 <a href"demo1/putMethod">存入 SessionAttribute</a><br><a href"demo…

零基础上手Python数据分析 (2):Python核心语法快速入门

写在前面 场景:每周销售数据报表整理 任务描述: 你需要每周从多个Excel文件中汇总销售数据,计算各项指标(销售额、订单量、客单价等),并生成周报。Excel操作痛点: 文件太多,手动打开复制粘贴,效率低下,容易出错。 多个Excel文件,每个都要打开、筛选、复制数据,重复…

【PHP】获取PHP-FPM的状态信息

文章目录 一、前言二、环境三、过程1&#xff09;修改PHP-FPM配置文件2&#xff09;修改Nginx配置文件3&#xff09;访问页面4&#xff09;修改状态页面端口 一、前言 PHP-FPM内置有一个状态页面&#xff0c;通过这个页面可以获取到FPM的一些状态信息&#xff08;见下图&#…

CCF CSP 第30次(2023.09)(2_坐标变换(其二)_C++)

CCF CSP 第30次&#xff08;2023.09&#xff09;&#xff08;2_坐标变换&#xff08;其二&#xff09;_C&#xff09; 题目背景&#xff1a;题目描述&#xff1a;输入格式&#xff1a;输出格式&#xff1a;样例输入&#xff1a;样例输出&#xff1a;样例解释&#xff1a;子任务…

搭建Spring Boot Admin监控系统

什么是Spring Boot Admin Spring Boot Admin 是一个用于管理和监控 Spring Boot 应用程序的开源工具。它提供了一个用户友好的 Web 界面&#xff0c;用于集中管理和监控多个 Spring Boot 应用程序的运行状态、健康状况、日志、配置等信息。 Spring Boot Admin 的核心功能 应用…

机器学习中的激活函数是什么起什么作用

在机器学习&#xff0c;尤其是神经网络中&#xff0c;​激活函数​&#xff08;Activation Function&#xff09;是一个非常重要的组件。它的主要作用是为神经网络引入非线性&#xff0c;从而使神经网络能够学习和表示复杂的模式或函数。 1.激活函数的定义 激活函数是一个数学…

[CISCN 2022 初赛]ezpop(没成功复现)

打开在线环境可以看到&#xff1a; 记得之前做过一个类似的就是有点像照着漏洞去复现。应该可以直接在网上找到链子去打。 www.zip查看路由是 Index/test&#xff0c;然后 post 传参 a&#xff1a; exp&#xff08;参考了别的大神的wp&#xff09;&#xff1a; <?php //…

C 语 言 --- 二 维 数 组 的 应 用

C 语 言 --- 二 维 数 组 的 应 用 第 一 题 - - - 冒 泡 排 序冒 泡 排 序冒 泡 排 序 的 原 理 第 二 题 - - - 回 型 矩 阵特 点 第 三 题 - - - 蛇 形 矩 阵总结 &#x1f4bb;作者简介&#xff1a;曾 与 你 一 样 迷 茫&#xff0c;现 以 经 验 助 你 入 门 C 语 言 &…

5G核心网实训室搭建方案:轻量化部署与虚拟化实践

5G核心网实训室 随着5G技术的广泛应用&#xff0c;行业对于5G核心网人才的需求日益增长。高校、科研机构和企业纷纷建立5G实训室&#xff0c;以促进人才培养、技术创新和行业应用研究。IPLOOK凭借其在5G核心网领域的深厚积累&#xff0c;提供了一套高效、灵活的5G实训室搭建方…

寄生虫仿生算法:基于寄生虫特征的算法设计

寄生虫仿生算法:基于寄生虫特征的算法设计 基于寄生虫行为特征的仿生算法设计 import random import numpy as npclass EnhancedPBOA:def __init__(self, host_env, max_generations, population_size50):self.host_env host_envself.max_generations max_generationsself.p…

【医学影像 AI】基于深度学习的 ROP 病变检测图像评估系统

【医学影像 AI】基于深度学习的 ROP 病变检测图像评估系统 0. 论文简介0.1 基本信息0.2 摘要 1. 引言2. 材料与方法2.1 研究人群2.2 疾病分类与参考标准的制定2.3 深度学习系统开发2.4 定量严重程度评分2.5 数据分析 3. 结果4. 讨论6. 参考文献 0. 论文简介 0.1 基本信息 201…

当AI学会“察言观色“:多模态情绪识别的魔幻现实主义之旅

引言&#xff1a;AI读脸时代的荒诞与真实 2025年的某个深夜&#xff0c;程序员小李开发的"情绪识别AI"把老板的假笑误判为"愤怒"&#xff0c;导致全员收到《关于禁止皮笑肉不笑的通知》。这场乌龙揭开了单模态识别的遮羞布——原来AI和人一样&#xff0c…

Cursor初体验:excel转成CANoe的vsysvar文件

今天公司大佬先锋们给培训了cursor的使用&#xff0c;还给注册了官方账号&#xff01;跃跃欲试&#xff0c;但是测试任务好重&#xff0c;结合第三方工具开发也是没有头绪。 但巧的是&#xff0c;刚好下午有同事有个需求&#xff0c;想要把一个几千行的excel转成canoe的系统变…

每日一题---单词搜索(深搜)

单词搜索 给出一个二维字符数组和一个单词&#xff0c;判断单词是否在数组中出现&#xff0c; 单词由相邻单元格的字母连接而成&#xff0c;相邻单元指的是上下左右相邻。同一单元格的字母不能多次使用。 数据范围&#xff1a; 0 < 行长度 < 100 0 < 列长度 <…

【深度学习】多源物料融合算法(一):量纲对齐常见方法

目录 一、引言 二、量纲对齐常见方法 2.1 Z-score标准化Sigmoid归一化 2.2 Min-Max 归一化 2.3 Rank Transformation 2.4 Log Transformation 2.5 Robust Scaling 3、总结 一、引言 类似抖音、快手、小红书等产品的信息流推荐业务&#xff0c;主要通过信息流广告、信…

deepseek为什么要开源

一、生态位的抢占与锁定&#xff1a;以 JDK 版本为例​ 在软件开发的世界里&#xff0c;生态位的抢占和先入为主的效应十分显著。就拿 Java 开发中的 JDK 版本来说&#xff0c;目前大多数开发者仍在广泛使用 JDK8。尽管 JDK17 和 JDK21 已经推出&#xff0c;且具备更多先进特性…

【AI】内容生成式AI(AIGC)的深度分析与扩展

引言 随着人工智能&#xff08;AI&#xff09;技术的迅速发展&#xff0c;AI生成内容&#xff08;AIGC&#xff09;已经在多个领域表现出巨大潜力&#xff0c;改变了内容创作的方式。这篇文章将详细介绍AI生成内容的技术原理、应用领域、优缺点、未来趋势以及相关伦理问题&…

用C++新建快捷方式

1.创建文件 新建一个文件Ink.cpp,系统会自动生成对应的EXE文件 2.编写代码 #include<stdlib.h> int main(){ system("powershell -command \"$WshShellNew-Object -comObject WScript.Shell; $Shortcut$WshShell.CreateShortcut(\%UserProfile%\\Desktop\\1.…