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

git使用(由浅到深)

  • 目录流程图
    在这里插入图片描述

1. 分布式版本控制与集中式版本控制

1.1 集中式版本控制

  • 集中式版本控制系统有:CVS和SVN
  • 它们的主要特点是单一的集中管理的服务器,保存所有文件的修订版本;
  • 协同开发人员通过客户端连接到这台服务器,取出最新的文件或者提交更新

在这里插入图片描述

  • 优缺点
    • 相较于老式的本地管理来说,每个人都可以在一定程度上看到项目中的其他人正在做些什么。
  • 但是集中式版本控制也有一个核心的问题:中央服务器不能出现故障:
  • 如果中心数据库所在的磁盘发生损坏,又没有做恰当备份,毫无疑问你将丢失所有数据;

1.2 分布式版本控制

  • 分布式版本控制系统有:Git
    在这里插入图片描述
  • 优缺点:
    • 客户端并不只提取最新版本的文件快照, 而是把代码仓库完整地镜像下来,包括完整的历史记录;
    • 这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复;
    • 因为每一次的克隆操作,实际上都是一次对代码仓库的完整备份

2. 安装与配置

安装与配置参考

  • 用户名与邮箱配置
$ git config --global user.name "username"
$ git config --global user.email "email@example.com"

3. git 命令行操作

基本指令前提

1. 克隆项目  `git clone 项目地址`
2. 初始化仓库` git init`
3. 添加暂存区 `git add .`
4. 提交本地仓库 `git commit -m 项目初始化`
5. master分支创建release分支` git branch release`
6. 基于master分支创建develop分支 `git branch develop`
# 推送master分支
git push -u origin master
# 推送release分支
git push origin release
# 推送develop分支
git push origin develop
# 在任意目录操作  (仓库地址仅供参考)
git clone https://gitee.com/zd1231230/doctor-demo.git
# 拉取其他分支
git fetch 项目地址 分支名称:别名
git fetch https://gitee.com/zd1231230/doctor-demo.git drugPayment:drugPayment

3.1 A D M U标识

  • M modified 你已经在github中添加过该文件,然后你对这个文件进行了修改,就会文件后标记M
  • U untracked 你在本地新建了这个文件,还未提交到github上,就会标记U
  • D delete 你删除了这个文件,vscode - git会记录下这个状态
  • A 在暂存区 还没有提交

3.2 项目初始化与提交基本命令

  1. 创建一个空目录 (最好不要包含中文)
$ mkdir gitMaster
$ cd gitMaster
$ pwd
/Users/git/gitMaster
  1. 初始化仓库 git init
$ git init
Initialized empty Git repository in /Users/hxk/mymenu/.git/
  1. 添加文件到仓库
$ git add test.txt
  1. 提交文件到仓库
    • - m 后面是提交说明
    • 提交的备注写错 ,可以使用 git commit --amend 修改
$ git commit -m "a new file"
  1. 查看提交的 历史记录
git log
  1. 查看状态
$ git status

3.3 文件状态跟踪与操作流程

  • 文件在提交时可以分为跟踪和未跟踪状态

    • 未跟踪:默认情况下,Git仓库下的文件也没有添加到Git仓库管理中,我们需要通过add命令来操作;
    • 已跟踪:添加到Git仓库管理的文件处于已跟踪状态,Git可以对其进行各种跟踪管理;
  • 检测文件的状态

git status –s
git status --short
  • 已跟踪的文件又可以进行细分状态划分
    • staged:暂缓区中的文件状态;
    • Unmodified:commit命令,可以将staged中文件提交到Git仓库
    • Modified:修改了某个文件后,会处于Modified状态;
      在这里插入图片描述
  • 命令跟踪文件 git add . 并添加到暂存区
    在这里插入图片描述
  • 文件更新提交 – git commit - m 提交说明
    在这里插入图片描述

3.4 提交历史记录与版本回退

git log   // 提交的日志 (里面包含提交的id)   q 退出
git log --pretty=oneline --graph  //简短的提交历史日志 (可以看到分支的提交结构)
git log --pretty=oneline

在这里插入图片描述

  • 如果想要进行版本回退,需要知道目前处于哪一个版本 Git通过HEAD指针记录当前版本
    在这里插入图片描述
  • git reset--hard HEAD ^ ^ 上一个版本
  • git reset--hard HEAD~1000 ~数字 上几个版本
  • git reset--hard 595674bdc04935452e583b360e714238b1295bf7 指定版本

3.5 git 忽略文件

  • .gitignore 的文件,列出要忽略的文件的模
    式;
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*node_modules
.DS_Store
dist
dist-ssr
coverage
*.local/cypress/videos/
/cypress/screenshots/# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
src/views/User/components/ConsultItem.vue

3.6 远程服务器

  • 查看远程仓库
git remote
git remote –v
-v是—verbose的缩写(冗长的)

在这里插入图片描述

  • 添加远程地址:让本地的仓库和远程服务器仓库建立连接
git remote add <shortname> <url>
git remote add origin http://152.136.185.210:7888/gitremotedemo.git
重命名远程地址: git remote rename master newMaster
移除远程地址:  git remote remove gitlab
  • 具体步骤
// 重要 添加远程地址(让本地的仓库和远程服务器仓库建立连接):
//  git remote add < shortname > <url>0. git init    // 初始化1.  git remote add origin  https://gitee.com/zd1231230/in.git   // 关联远程仓库2.0  git push --set-upstream origin newFetch 提交到远程仓库2.1   git pull https://gitee.com/zd1231230/in.git master  拉取仓库到主分支3.  新建仓库 newFetch4.   git commit -a -m "初始化"5. push

在这里插入图片描述

  • 注意点 关联远程仓库后 拉取分支并合并 git pull
git pull 等于  git fetch + git merge(rebase)

3.7 分支创建切换与合并

  • 分支创建
git branch 分支名
  • 创建分支并合并
git checkout -b <newbranchname>
  • 分支合并
git merge <name>
  • 查看和删除分支
  • git branch # 查看当前所有的分支
  • git branch –v # 同时查看最后一次提交
  • git branch --merged # 查看所有合并到当前分支的分支
  • git branch --no-merged # 查看所有没有合并到当前分支的分支
  • git branch –d hotfix # 删除当前分支
  • git branch –D hotfix # 强制删除某一个分支

3.8 跟踪分支

  • 问题一:当前分支没有track的分支
    在这里插入图片描述
  • 原因:当前分支没有和远程的origin/master分支进行跟踪
    • 在没有跟踪的情况下,我们直接执行pull操作的时候必须指定从哪一个远程仓库中的哪一个分支中获取内容
  • 直接执行
git push  origin master
  • 如果我们想要直接执行git fetch是有一个前提的:必须给当前分支设置一个跟踪分支
    在这里插入图片描述

4. Git的工作流(git flow)

  • 由于Git上分支的使用的便捷性,产生了很多Git的工作流:
    • 也就是说,在整个项目开发周期的不同阶段,你可以同时拥有多个开放的分支;
    • 你可以定期地把某些主题分支合并入其他分支中;
  • 比如以下的工作流:
    • master作为主分支;
    • develop作为开发分支,并且有稳定版本时,合并到master分支中;
    • topic作为某一个主题或者功能或者特性的分支进行开发,开发完成后合并到develop分支中;
git fetch 项目地址 分支名称:别名
git fetch https://gitee.com/zd1231230/doctor-demo.git dev:dev

在这里插入图片描述
git flow 工作流图
在这里插入图片描述
文章参考:rebase与tag标签

相关文章:

git使用(由浅到深)

目录流程图 1. 分布式版本控制与集中式版本控制 1.1 集中式版本控制 集中式版本控制系统有:CVS和SVN它们的主要特点是单一的集中管理的服务器&#xff0c;保存所有文件的修订版本&#xff1b;协同开发人员通过客户端连接到这台服务器&#xff0c;取出最新的文件或者提交更新…...

NAT协议(网络地址转换协议)详解

NAT协议&#xff08;网络地址转换协议&#xff09;详解 为什么需要NATNAT的实现方式静态NAT动态NATNAPT NAT技术的优缺点优点缺点 NAT协议是将IP数据报头中的IP地址转换为另外一个IP地址的过程&#xff0c;主要用于实现私有网络访问公有网络的功能。这种通过使用少量的IP地址代…...

pytorch(续周报(1))

文章目录 2.1 张量2.1.1 简介2.1.2 创建tensor2.1.3 张量的操作2.1.4 广播机制 2.2 自动求导Autograd简介2.2.1 梯度 2.3 并行计算简介2.3.1 为什么要做并行计算2.3.2 为什么需要CUDA2.3.3 常见的并行的方法&#xff1a;网络结构分布到不同的设备中(Network partitioning)同一层…...

el-table 树形结构数据 设置某一层,新增按钮不展示

<template><div><el-table:data"tableData":row-class-name"rowClassName":tree-props"{ children: children, hasChildren: hasChildren }"><!-- 表格列定义 --><!-- ... --><el-table-column label"操作…...

【Unity2D】粒子特效

为什么要使用粒子特效 Unity 的粒子系统是一种非常强大的工具&#xff0c;可以用来创建各种各样的游戏特效&#xff0c;如火焰、烟雾、水流、爆炸等等。使用粒子特效可以使一些游戏动画更加真实或者使游戏效果更加丰富。 粒子特效的使用 在Hierarchy界面右键添加Effects->…...

第九十六回 网络综合示例:获取天气信息

文章目录 概念介绍使用方法示例代码 我们在上一章回中介绍了dio库中转换器相关的内容&#xff0c;本章回中将介绍网络综合示例&#xff1a;获取天气信息.闲话休提&#xff0c;让我们一起Talk Flutter吧。 概念介绍 我们在前面章回中介绍了网络操作相关的内容&#xff0c;本章…...

Shell中获取昨天和多天前日期

1、获取今天日期 $ date -d now %Y-%m-%d 或者 $ date %F2、获取明天日期 $ date -d next-day %Y-%m-%d $ date -d tomorrow %Y-%m-%d3、获取昨天日期 $ date -d yesterday %Y-%m-%d 或者 $ date -d last-day %Y-%m-%d 或者 $ date -d "1 days ago" %Y-%m-%d …...

golang静态编译及编译失败排查步骤

文章目录 一、背景前提 二、静态编译概述1、执行静态编译设置CGO_ENABLED方式指定link方式 2、编译报错分析&#xff08;1&#xff09;确认系统上有没有安装libopus&#xff08;2&#xff09;设置LD_LIBRARY_PATH 三、详细排查过程1、下载bpf排查工具bcc, bcc-tools,python-bcc…...

2023年7月第4周大模型荟萃

2023年7月第4周大模型荟萃 2023.7.31版权声明&#xff1a;本文为博主chszs的原创文章&#xff0c;未经博主允许不得转载。 1、Cerebras推出全球最强AI超算 AI芯片初创公司Cerebras Systems和总部位于阿联酋的技术控股集团G42于7月20日宣布&#xff0c;携手打造一个由互联的超…...

Meta分析的选题与文献计量分析CiteSpace应用丨R语言Meta分析【数据清洗、精美作图、回归分析、诊断分析、不确定性及贝叶斯应用】

目录 ​专题一、Meta分析的选题与文献计量分析CiteSpace应用 专题二、Meta分析与R语言数据清洗及相关应用 专题三、R语言Meta分析与精美作图 专题四、R语言Meta回归分析 专题五、R语言Meta诊断分析与进阶 专题六、R语言Meta分析的不确定性及贝叶斯应用 专题七、深度拓展…...

vscode eslint配置

1. 全局安装 eslint npm install -g eslint 2. control shift p 输入 settings 打开设置进行配置 3. 添加配置 {"workbench.colorTheme": "One Dark Pro","eslint.debug": true,"eslint.execArgv": null,"eslint.alwaysShow…...

C++ 对象模型 C++ Object Model

C 对象模型 C Object Model 文章目录 C 对象模型 C Object ModelC语言的数据及函数C的类C对象模型 C语言的数据及函数 C语言中&#xff0c;数据和函数是分开声明的。 数据 typedef struct point2d {float x;float y; } Point2d;函数 打印Point2d的数值 void Point2d_print…...

leetcode做题笔记47

给定一个可包含重复数字的序列 nums &#xff0c;按任意顺序 返回所有不重复的全排列。 思路一&#xff1a;回溯 int* Source NULL; int Source_Size 0;int** Result NULL; int* Retcolsizes NULL; int Result_Index 0;int* Path NULL; int Path_Index 0;bool* Used …...

Linux Day04

目录 一、文件压缩与解压命令 1.1 tar cvf 文件名 ---打包命令生成.tar 1.2 tar xvf 文件名 ----解开包 生成文件 1.3 gzip .tar 压缩 生成.tar.gz压缩包 1.4 gzip -d .tar.gz 解压成包 1.5 直接把压缩包解压成文件 tar zxf .tar.gz 二、Linux 系统上 C 程序的…...

上海亚商投顾:沪指冲高回落 两市成交重回万亿

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 市场情绪 三大指数今日冲高回落&#xff0c;盘初一度集体涨超1%&#xff0c;随后涨幅明显回落&#xff0c;上证50午后一度翻…...

2023最新版本~十分钟零基础搭建EMQX服务器

购买服务器 已知服务器大厂商 1 阿里云 点击直接访问 2 华为云点击直接访问 3 腾讯云 点击直接访问 还是比较推荐大公司 不会跑路 这里我购买的是一年的华为云服务器(新用户 64一年) 镜像推荐乌班图18 登陆服务器&#xff08;需要重置密码&#xff01;&#xff01;&…...

SpringBoot2.5.6整合Elasticsearch7.12.1

SpringBoot2.5.6整合Elasticsearch7.12.1 下面将通过SpringBoot整合Elasticseach&#xff0c;SpringBoot的版本是2.5.6&#xff0c;Elasticsearch的版本是7.12.1。 SpringBoot整合Elasticsearch主要有三种方式&#xff0c;一种是通过elasticsearch-rest-high-level-client&am…...

准大一信息安全/网络空间安全专业学习规划

如何规划&#xff1f; 学习需要一个良好的学习习惯&#xff0c;建议刚开始一定要精通一项程序语言&#xff0c;学习其他的就会一通百通。过程中是按步骤学习&#xff0c;绝不半途看见苹果丢了梨&#xff0c;一定要强迫自己抵制新鲜技术的诱惑。 网络安全其实是个广而深的领域…...

WEB:php_rce

背景知识 Linux命令 thinkPHPv5漏洞 题目 打开页面&#xff0c;页面显示为thinkphp v5的界面&#xff0c;可以判断框架为thinkPHP&#xff0c;可以去网上查找相关的漏洞 由题目可知&#xff0c;php rec是一个通过远程代码执行漏洞来攻击php程序的一种方式 因为不知道是php版…...

问题:idea启动项目错误提示【command line is too long. shorten command line】

问题&#xff1a;idea启动项目错误提示【command line is too long. shorten command line】 参考博客 问题描述 启动参数过长&#xff0c;启动项目&#xff0c;错误提示 原因分析 出现此问题的直接原因是&#xff1a;IDEA集成开发环境运行你的“源码”的时候&#xff08…...

技术选型翻车实录:我们选的那个框架,两年后停止维护了

一、惊魂一刻&#xff1a;框架停更的暴击“紧急通知&#xff0c;我们一直使用的XX测试框架将于本月底停止维护&#xff01;”当这条消息出现在团队工作群时&#xff0c;整个测试部瞬间陷入死寂。作为一家中型电商企业的测试负责人&#xff0c;我清楚地知道&#xff0c;这个框架…...

LangGraph与智能体:当AI学会了“思考图谱”,离真正干活还有多远?

你有没有发现&#xff1a;现在的AI聊天工具虽然能回答五花八门的问题&#xff0c;可一旦交给它稍微复杂点的任务——比如“订一张去上海的机票&#xff0c;顺便查查那边的天气&#xff0c;再帮我写份会议纪要”——它就手忙脚乱&#xff0c;要么忘记前面的信息&#xff0c;要么…...

2026年JAVA语言前端还可以学吗?是否还能找到好工作?

因为Java并不是前端语言。前端开发主要用的是 HTML、CSS、JavaScript/TypeScript&#xff0c;以及 React、Vue 等框架。可能您是混淆了 Java 和 JavaScript&#xff0c;或者想问的是“学 Java 还能找到好工作吗&#xff1f;前端还能学吗&#xff1f;” 下面我分开讲清楚&#x…...

Obsidian全功能日历:在笔记中打造你的专属时间管理系统

Obsidian全功能日历&#xff1a;在笔记中打造你的专属时间管理系统 【免费下载链接】obsidian-full-calendar Keep events and manage your calendar alongside all your other notes in your Obsidian Vault. 项目地址: https://gitcode.com/gh_mirrors/obs/obsidian-full-c…...

Twemoji跨平台表情统一渲染方案:构建一致性用户体验的核心技术

Twemoji跨平台表情统一渲染方案&#xff1a;构建一致性用户体验的核心技术 【免费下载链接】twemoji Emoji for everyone. 项目地址: https://gitcode.com/gh_mirrors/twe/twemoji Twemoji作为一款基于Unicode标准的开源表情解决方案&#xff0c;为开发者和产品经理提供…...

如何免费获取百度文库文档:三步实现纯净打印保存的实用技巧

如何免费获取百度文库文档&#xff1a;三步实现纯净打印保存的实用技巧 【免费下载链接】baidu-wenku fetch the document for free 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wenku 你是否经常在百度文库找到完美的学习资料或工作报告&#xff0c;却因为需要…...

用 ai 生成带货/电商短视频,有哪些工具比较好用?下面推荐几个

在 2026 年&#xff0c;短视频内容已成为驱动电商转化的核心引擎。然而&#xff0c;许多商家仍面临本土化适配难、制作周期长、精品成本高等痛点。本文将针对“怎么用 ai 生成带货视频&#xff0c;有哪些工具比较好用&#xff1f;”以及“AI 生成电商短视频的工具有哪些&#x…...

为Claude Code配置Taotoken解决密钥被封与Token不足的烦恼

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 为Claude Code配置Taotoken解决密钥被封与Token不足的烦恼 应用场景类&#xff0c;聚焦于使用Claude Code的编程助手用户&#xff…...

如何快速在Windows上安装安卓应用?APK Installer的终极免费解决方案

如何快速在Windows上安装安卓应用&#xff1f;APK Installer的终极免费解决方案 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾想在Windows电脑上运行安卓应用…...

技术人如何应对职业倦怠?这4个方法让我重燃热情

一、软件测试从业者职业倦怠的“隐形陷阱”在互联网技术高速迭代的今天&#xff0c;软件测试从业者正面临着前所未有的职业压力。你是否也曾有过这样的时刻&#xff1a;盯着满屏的测试用例&#xff0c;手指机械地重复着点击操作&#xff0c;内心却毫无波澜&#xff1b;面对层出…...