Git快速上手

初识Git

是一个免费开源, 分布式的代码版本控制系统, 帮助开发团队维护代码

作用: 记录代码内容,切换代码版本,多人开发时高效合并代码内容

Git和GitHub

Git是一个软件, Github是一个网站,两者的功能都是提供版本控制服务.

官网: GitHub: Let’s build from here · GitHub

安装Git

  1. 官网: https://git-scm.com/
  2. 快速下载: CNPM Binaries Mirror
  3. 下载安装包后, 双击安装, 全部默认下一步
  4. 验证: 打开bash终端 (git专用终端)
  • 在vscode中, 打开终端, 切换到Git Bahs

  • 或者 桌面空白处右键, 点击 Git Bash Here 打开Git命令行窗口

  • 命令: git -v (出现版本号)

配置用户信息

表明身份, 让Git知道是谁在操作仓库

  1. git config --global user.name "用户名"
  2. git config --global user.email "邮箱地址"
  3. 验证: git config --list
  4. 或者单独查询 git config --global user.name || git config --global user.email

Git仓库

记录文件状态内容的地方, 储存着修改的历史记录

创建

  1. git仓库的本质是一个隐藏的文件夹, 隐藏起来是防止误删除
  2. 如果想要看到, 需要设置显示隐藏文件, 查看->显示隐藏文件夹
  3. 把本地文件夹转换成Git仓库: git init
  4. 从其他服务器上克隆Git仓库: git clone xxxx

管理流程

  1. 工作区: 实际开发时操作的文件夹
  • 暂存制定文件: gti add 文件名
  • 暂存所有文件: git add .
  1. 暂存区: 临时存在工作区的文件
  • 查看暂存区文件: git ls-files
  • 提交暂存区文件: git commit -m "提交说明"
  1. 版本库: 产生一个版本快照

文件状态

Git文件状态有

  1. 未跟踪: 新文件, 从未被Git管理过
  2. 已跟踪: 已经被管理的文件
  3. 查看文件状态:

git status -s 或 git status

操作暂存区

暂存区的作用就是临时存储代码, 减少代码的提交次数, 与版本库解耦合

从暂存区恢复文件: git restore 目标文件

从暂存区移除文件: git rm -- cached 目标文件

回退版本

把版本库某个版本对应的内容快照, 恢复到工作区/暂存区

查看提交历史:

  1. 简洁日志: git log --oneline (只包含提交操作的日志)
  2. 完整日志: git reflog --oneline (包含所有操作的日志)

回退命令:

  1. git reset --soft 版本号 (保留多余文件, 文件状态是未跟踪)
  2. git reset --hard 版本号 (清理多余文件, 工作区完全恢复到对应版本)

忽略文件

.gitignore文件可以让git彻底忽略跟踪指定文件, 避免重复无意义的文件管理

# 忽略依赖文件
node_modules
# 忽略分发文件夹
dist
# 忽略vscode文配置件
.vscode
# 忽略秘钥文件
*.pem
# 忽略证书文件
*.cer
# 忽略日志文件
.log

规则

  1. 该文件对当前目录及子目录生效
  2. #注释的内容
  3. * 代码通配符
  • *.zip 过滤所有.zip文件
  1. 过滤文件夹:
  • 直接写文件夹名
  • 转译写法: /文件夹名/
  1. 过滤具体文件
  • 直接写文件夹名 文件夹名/文件名
  • 转译写法: /mtk/do.c
  1. 不要过滤
  • !index.php

分支

分支的本质是一个容器, 里面装着提交的代码, 默认名字是master

作用

在开发新需求或者修复bug时, 保证主线代码随时可用, 多人协同开发提高效率

命令

  1. 查看分支 git branch
  2. 查看分支文件的状态 git status
  3. 创建分支 git branch 分支名
  4. 切换分支 git checkout 分支名
  5. 新建分支并切换 git checkout -b 分支名
  6. 合并分支 git merge 被合并的分支名 // 先切换到主分支, 再把目标分支合并到主分支
  7. 删除分支 git branch -d 分支名 // 先退出分支,才能删除分支

流程

  1. 如果新任务不想直接在主分支代码上进行, 要保证主分支代码的可用
  2. 先要创建新的分支 git branch 分支名
  3. 然后切换到新的分支 git checkout 分支名
  4. 开发编码完成后, 需要把分支合并到主分支
  5. 切换到主分支 git checkout master
  6. 合并目标分支 git merge 被合并的分支名
  7. 合并完成后, 分支就没用了, 删除分支 git branch -d 分支名

冲突

在不同分支, 对同一个文件的同一部分代码修改后, 就会产生合并冲突

  1. 代码冲突后多交流, 然后取舍代码

  1. 按照页面划分不同分支开发, 修改时尽量只修改自己相关的代码, 不要随意修改其他模块的代码
  2. 公共代码要统一维护, 组长负责修改, 其他成员只拉取,
  3. Node等软件的版本要统一, npm包统一维护, 由组长管理依赖, 其他成员只拉取

远程仓库

提交

托管在互联网或其他网络中的你的项目的版本库, 作用是保存项目, 对人协作

1.0基于Https鉴权

  1. 注册第三方托管平台网站账号
  2. 新建仓库得到远程仓库Git地址
  3. 本地Git仓库 添加 远程仓库原点地址
  • 添加: git remote add 远程仓库别名 远程仓库地址
  • 查看: git remote -v
  • 移除: git remote remove 远程仓库别名
  1. 本地Git仓库推送版本记录到远程仓库
  • git push -u 远程仓库别名 本地:远程分支名
  1. 删除已有的gitee账号凭证
  • 控制面板->用户账户->凭据管理器->删除

2.0基于ssh鉴权

  1. 基于ssh协议只是身份鉴权的方式不同, 使用过程没区别
  2. 创建公私钥对文件
  • ssh-keygen -t rsa -C "1272289847@qq.com" //执行指令,连续回车,生产公私钥对
  • c盘->用户->当前账号->.ssh文件->id_ras.pub(文本打开) //获取公钥
  1. 在Github中配置好SSH
  2. 正常操作,克隆/添加/提交/同步

克隆

拷贝一个Git仓库到本地进行使用

  1. git clone 远程仓库地址
  2. 效果: 在运行命令的所在文件夹, 生成work项目文件夹
  3. 注意: Git本地仓库已经建立好和远程仓库的连接
  4. 注意: 仓库公开可以随意克隆, 推送需要身为仓库团队成员

协同开发

  1. 拉取代码: git pull 远程仓库别名 分支名
  • 该命令是复合写法, 等价于:
  • 等价于 git fetch 远程仓库别名 本地:远程分支名 (获取远程分支记录到本地,未合并)
  • git merge 远程仓库别名/本地分支名 (把远程分支记录合并到所在分支下)
  1. 开发->拉取->推送, 先拉取再推送, 可以防止覆盖他人的代码

图形化操作

vscode编译器提供了图形化操作

  1. 打开更改的文件
  2. 恢复使用暂存区文件
  3. 把文件提交到暂存区
  4. 提交文件到远程仓库

命令总结

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

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

相关文章

oracle12c到19c adg搭建(三)oracle19c数据库软件安装

由于这里的19c是做备库所以我们只安装软件不用创建实例,实例由主库同步过来 解压软件到安装目录 注意19c得db要直接解压到19c得软件安装目录 [rooto12u19p software]# ls V982063-01.zip [rooto12u19p software]# ls -ll total 2987996 -rw-r--r-- 1 root ro…

【css】创建一个带有上矩形和下倒三角角标

涉及到的主要CSS属性&#xff1a; clip-path&#xff1a;使用CSS剪切路径属性创建上矩形和下倒三角形的形状。 transform: scale(0.8);&#xff1a;缩小角标的大小&#xff0c;使其看起来更协调。完整html及css: <!DOCTYPE html> <html lang"en"><h…

PAT B1008. 数组元素循环右移问题

题目描述 一个数组A中存有N(N>O)个整数&#xff0c;在不允许使用另外数组的前提下&#xff0c;将每个整数循环向右移M(M≥0)个位置,即将A中的数据由( …)变换为(……)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,则应如何设计移动的方法?输…

Harbor本地仓库搭建002_Harbor负载均衡节点搭建_nginx安装配置_harbor安装---分布式云原生部署架构搭建002

负载均衡的机器. 可以看到上面是安装nginx的过程 首先去编辑一下yum仓库地址,配置一下nginx的仓库地址 然后这个是配置的内容 然后在进行安装之前最好yum makecache fast 更新一下缓存,这样安装的时候 会安装最新的包 然后就可以安装nginx yum -y install nginx 然后去

设备档案包括哪些内容

设备档案通常包括以下内容和要求&#xff1a; 1. 设备基本信息&#xff1a;包括设备名称、型号、规格、生产厂商、出厂日期、购买日期等。 2. 设备安装信息&#xff1a;包括设备的安装位置、安装日期、安装人员等。 3. 设备维护信息&#xff1a;包括设备的维护保养记录&#xf…

C++类与对象、类的6个默认成员函数、构造函数、析构函数等的介绍

文章目录 前言一、类的6个默认成员函数二、构造函数1. 概念2. 特性1. 无参构造函数2. 带参构造函数3. 编译器默认生成的无参构造函数 3. 构造函数的初始化4. 默认构造函数 三、析构函数1. 概念2. 特性3. 编译器默认生成的析构函数的作用4. 构造函数的使用 总结 前言 C类与对象…

docker容器中连接宿主机mysql数据库

最近要在docker中使用mysql数据库&#xff0c;首先考虑在ubuntu的镜像中安装mysql&#xff0c;这样的脚本和数据库都在容器中&#xff0c;直接访问localhost&#xff1a;3306&#xff0c;脚本很简单&#xff0c;如下&#xff1a; import pymysql# 建立数据库连接 db pymysql.…

HTML5基本语法

文章目录 HTML5基本语法一、基础标签1、分级标题2、段标签3、换行及水平线标签4、文本格式标签 二、图片标签1、格式2、属性介绍 三、音频标签1、格式2、属性介绍 四、视频标签1、格式2、属性介绍 五、链接标签1、格式2、显示特点3、属性介绍4、补充&#xff08;空链接&#xf…

拼多多,藏着水果版中国地图

越来越多人开始在拼多多买水果。在发现这个现象后&#xff0c;我询问他们同一个问题&#xff1a;“那你收到过烂掉的吗&#xff1f;” 几乎所有频繁下单的人都告诉我&#xff0c;收到过。他们在拼多多买全国各地的水果&#xff0c;偶尔收到烂掉的&#xff0c;但依然会继续在拼…

工业物联网关为智能制造业提供哪些支撑?天拓四方

随着科技的飞速发展&#xff0c;智能制造业已成为工业领域的转型方向。在这一转变中&#xff0c;工业物联网关发挥着至关重要的作用。作为连接物理世界与数字世界的桥梁&#xff0c;工业物联网关不仅实现了设备与设备、设备与云平台之间的互联互通&#xff0c;更通过实时数据采…

设计模式(五)创建者模式之工厂模式

工厂模式 工厂模式上面类图代码实现Coffee 抽象类AmericanCoffeeLatterCoffeeCoffeeStoreUser 简单工厂模式增加工厂方法更改CoffeeStore 类优缺点扩展静态工厂 工厂方法模式概念结构具体类图代码实现Coffee类AmericanCoffeeLatterCoffee抽象工厂CoffeeFactoryAmericanCoffeeFa…

Android studio中如何下载sdk

打开 file -> settings 这个页面, 在要下载的 SDK 前面勾上, 然后点 apply 在 platforms 中就可以看到下载好的 SDK: 如果sdk下载失败是不是硬盘没有权限&#xff0c;管理员权限从启android studio运行下载sdk

MySQL 基本语法讲解及示例(上)

第一节&#xff1a;MySQL的基本操作 1. 创建数据库 在 MySQL 中&#xff0c;创建数据库的步骤如下&#xff1a; 命令行操作 打开 MySQL 命令行客户端或连接到 MySQL 服务器。 输入以下命令创建一个数据库&#xff1a; CREATE DATABASE database_name;例如&#xff0c;创建一…

银行数仓项目实战(二)--数据采集(Kettle的抽取(E)转换(T)加载(L))

Kettle安装 Kettle又名PDI 要求电脑中有Java环境。 下载Kettle9.0的安装包&#xff0c;如有需要可以联系up私发噢。 注意&#xff01;&#xff01;&#xff01; 解压路径不能有中文&#xff0c;空格 解压后双击spoon.bat即可使用 链接数据库需要相应的驱动&#xff0c;Oracle的…

Python图像处理库之pyvips使用详解

概要 在图像处理领域,高效和快速的图像处理工具对于开发者来说至关重要。pyvips 是一个强大的 Python 库,基于 libvips 图像处理库,提供高效、快速且节省内存的图像处理能力。pyvips 支持多种图像格式,并且能够执行各种复杂的图像处理任务,如裁剪、缩放、旋转、滤波等。本…

采用了宽电压设计的测径仪为什么仍旧需要到现场勘察电力环境

关键字: 测径仪宽电压设计,测径仪电压范围,电压影响测径仪,测径仪车间电压 设备宽电压设计是指该设备能够在一定范围的电压波动内正常工作&#xff0c;而不会因为电压的轻微变化而导致性能下降或损坏。宽电压设计通常涉及到电源电路的优化和设计&#xff0c;以确保设备在电压波…

【C语言习题】31.冒泡排序

文章目录 作业标题作业内容2.解题思路3.具体代码 作业标题 冒泡排序 作业内容 实现一个对整形数组的冒泡排序 2.解题思路 先了解一下冒泡排序&#xff1a; 两两相邻的元素进行比较&#xff0c;如果前面元素大于后面元素就交换两个元素的位置&#xff0c;最终的结果是最大的…

基于格网拓扑关系的边缘点检测

1、背景介绍 前文已介绍对点云进行格网处理,可以计算平面点云面积、格网拓扑关系构建,相关博客如下: (1)点云格网过程可视化(C++ PCL)-CSDN博客 (2)

使用 Web Serial API 在浏览器中实现串口通讯(纯前端)

文章目录 目的相关资料使用说明代码与演示总结 目的 串口是非常常用的一种电脑与设备交互的接口。目前在浏览器上直接使用电脑上的串口设备了&#xff0c;这篇文章将介绍相关内容。 相关资料 Web Serial API 相关内容参考如下&#xff1a; https://developer.mozilla.org/en…

消息队列-分布式消息队列技术选型

Kafka Kafka 是 LinkedIn 开源的一个分布式流式处理平台&#xff0c;已经成为 Apache 顶级项目&#xff0c;早期被用来用于处理海量的日志&#xff0c;后面才慢慢发展成了一款功能全面的高性能消息队列。 流式处理平台具有三个关键功能&#xff1a; 消息队列&#xff1a;发布和…