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标签

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

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

相关文章

【CSS】3D卡片效果

效果 index.html <!DOCTYPE html> <html><head><title> Document </title><link type"text/css" rel"styleSheet" href"index.css" /></head><body><div class"card"><img…

在自定义数据集上微调Alpaca和LLaMA

本文将介绍使用LoRa在本地机器上微调Alpaca和LLaMA&#xff0c;我们将介绍在特定数据集上对Alpaca LoRa进行微调的整个过程&#xff0c;本文将涵盖数据处理、模型训练和使用流行的自然语言处理库(如Transformers和hugs Face)进行评估。此外还将介绍如何使用grado应用程序部署和…

【C++】开源:跨平台轻量日志库easyloggingpp

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍跨平台轻量日志库easyloggingpp。 无专精则不能成&#xff0c;无涉猎则不能通。。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&am…

RL — 强化学习技巧

一、说明 深度学习&#xff08;DL&#xff09;很难训练&#xff0c;强化学习&#xff08;RL&#xff09;要差得多。在早期开发中&#xff0c;遵循与 DL 相同的策略&#xff1a;保持简单&#xff01;消除任何妨碍您的花里胡哨的东西&#xff0c;并将不确定性降至最低。具体到RL&…

git clone 登录 github

git clone 登录 github 目录概述需求&#xff1a; 设计思路实现思路分析1.github 设置setting2.输入passwd 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,make a better result…

脑电信号处理与特征提取——6.运用机器学习技术和脑电进行大脑解码(涂毅恒)

目录 六、运用机器学习技术和脑电进行大脑解码 6.1 前言 6.2 基于脑电数据的机器学习基础分析 6.3 基于脑电数据的机器学习进阶分析 6.4 代码解读 六、运用机器学习技术和脑电进行大脑解码 6.1 前言 6.2 基于脑电数据的机器学习基础分析 6.3 基于脑电数据的机器学习进阶分…

C# 关于使用newlife包将webapi接口寄宿于一个控制台程序、winform程序、wpf程序运行

C# 关于使用newlife包将webapi接口寄宿于一个控制台程序、winform程序、wpf程序运行 安装newlife包 Program的Main()函数源码 using ConsoleApp3; using NewLife.Log;var server new NewLife.Http.HttpServer {Port 8080,Log XTrace.Log,SessionLog XTrace.Log }; serv…

hdu Perfect square number

题意&#xff1a; 有n个数&#xff08;n<300&#xff09;&#xff0c;将其中的任意的一个数改为x&#xff08;x在[1,300]&#xff09;&#xff0c;求改之后&#xff0c;区间和为完全平方数的最大区间个数是多少 思路&#xff1a; 将a[x]改之后的区间个数等于&#xff1a;改…

计算机和汇编语言

1.用电表示数字 我们已经学习过二进制来表示数字 二进制计数采用0和1组合表示数字 0和1很适合使用开关闭合&#xff0c;导线上有电流是1&#xff0c;无电流是 我们还可以加上小灯泡&#xff0c;来表示数 2.二进制加法机 上述这个加法机器是接受左边和下面的输入&#xff0c;把…

TCP三次握手

文章目录 目的场景TCP头部结构 目的 保证双方互相建立了连接。 场景 发生在客户端连接服务器的时候&#xff0c;当调用connect()&#xff1b;时&#xff0c;底层会通过TCP协议进行三次握手。 客户端发送 和 服务器接收客户端确定服务器可以收发&#xff0c;自己可以发送服务…

sqlyog导出mysql数据字典

1.打开sqlyog执行sql获取字典数据 SELECTt.COLUMN_NAME AS 字段名,t.COLUMN_TYPE AS 数据类型,CASE IFNULL(t.COLUMN_DEFAULT,Null) WHEN THEN 空字符串 WHEN Null THEN NULL ELSE t.COLUMN_DEFAULT END AS 默认值,CASE t.IS_NULLABLE WHEN YES THEN 是 ELSE 否 END AS 是否…

JSON动态生成表格

<!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><body><script>var fromjava"{\"total\":3,\"students\":[{\"name\":\"张三\",\&q…

Spring的创建及使用

文章目录 什么是SpringSpring项目的创建存储Bean对象读取Bean对象getBean()方法 更简单的读取和存储对象的方式路径配置使用类注解存储Bean对象关于五大类注解使用方法注解Bean存储对象Bean重命名 Bean对象的读取 使用Resource注入对象Resource VS Autowired同一类型多个bean对…

怎么让表格中的一行数据 转置 为一列数据 (WPS )

例如 我现在有一列数据 我想要 变成一行 数据 1.首先选中想要转置的数据&#xff0c;然后control C 2.接着 点击你想放置数据的位置 右键 其实 关键是 找到 选择性复制 3. 找到转置&#xff0c;勾选 最后 确定 反之亦然

PoseiSwap:基于 Nautilus Chain ,构建全新价值体系

在 DeFi Summer 后&#xff0c;以太坊自身的弊端不断凸显&#xff0c;而以 Layer2 的方式为其扩容成为了行业很长一段时间的叙事方向之一。虽然以太坊已经顺利的从 PoW 的 1.0 迈向了 PoS 的 2.0 时代&#xff0c;但以太坊创始人 Vitalik Buterin 表示&#xff0c; Layer2 未来…

TWS真无线蓝牙耳机哪家好?六款口碑好的TWS真无线蓝牙耳机分享

为了帮助大家在这个充满选择的世界中找到最理想的蓝牙耳机&#xff0c;我们特别为您精心挑选了几款备受赞誉的产品&#xff0c;它们在音质、舒适度、功能和性价比等方面都有出色的表现。在本文中&#xff0c;我们将深入探讨这些蓝牙耳机的特点和优势&#xff0c;帮助您更好地了…

智能化RFID耳机装配系统:提升效率、精准追踪与优化管理

智能化RFID耳机装配系统&#xff1a;提升效率、精准追踪与优化管理 在当今的智能化时代&#xff0c;无线射频识别技术&#xff08;RFID&#xff09;被广泛应用于各个行业。本文将介绍一种基于RFID技术的智能耳机装配案例&#xff0c;通过RFID技术实现耳机装配过程的自动化控制…

Github Pages自定义域名

Github Pages自定义域名 当你想在网上发布内容时&#xff0c;配置Github Pages是一个很好的选择。如果你想要在自己的域名上发布&#xff0c;你可以使用Github Pages来创建自己的网站。本文将介绍如何使用Github Pages自定义域名。 这里呢先列出前置条件&#xff1a; 您的Gi…

在使用Python爬虫时遇到503 Service Unavailable错误解决办法汇总

在进行Python爬虫的过程中&#xff0c;有时会遇到503 Service Unavailable错误&#xff0c;这意味着所请求的服务不可用&#xff0c;无法获取所需的数据。为了解决这个常见的问题&#xff0c;本文将提供一些解决办法&#xff0c;希望能提供实战价值&#xff0c;让爬虫任务顺利完…

mysql的json处理

需要注意&#xff0c;5.7以上版本才支持&#xff0c;但如果是生产环境需要使用的话&#xff0c;尽量使用8.0版本&#xff0c;因为8.0版本对json处理做了比较大的性能优化。你你可以使用select version();来查看版本信息。 本文看下MySQL的json处理。在正式开始让我们先来准备一…