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…

MongoDB入门与实践

MongoDB是一个NoSQL数据库,它采用文档模型来存储数据,具有高性能、易扩展、灵活的特点。以下是MongoDB的入门指南和一些基本的实践示例,帮助你开始使用MongoDB。 1. 安装和基本配置 安装MongoDB 具体安装方法取决于你的操作系统。以Ubuntu…

R语言数据分析案例:探索在线零售数据集

R语言数据分析案例:探索在线零售数据集 一、引言 在当今数据驱动的时代,数据分析成为了各个领域中不可或缺的一部分。R语言作为一款强大的统计分析工具,广泛应用于数据清洗、探索性数据分析、数据可视化以及预测建模等方面。本案例将使用R语…

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

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

java-System 概述 2

### 6. System类的设计原则 System类的设计体现了许多Java设计原则&#xff0c;包括封装、单一职责、模块化和高内聚性。以下是一些具体的设计原则和它们在System类中的体现&#xff1a; #### 6.1 封装 封装是面向对象编程的基本原则之一&#xff0c;它通过隐藏对象的内部实…

RSA加密Java与Python通用版

前情提要&#xff1a;架构中有两个系统&#xff0c;一个JAVA,一个PYTHON&#xff0c;之间的数据传输需要进行加密解密。 于是做了一个统一的工具。两系统之间可以相互加解密。 目录 一、JAVA 二、PYTHON 一、JAVA <!-- https://mvnrepository.com/artifact/org.bouncycas…

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类与对象…

GLM4-9B-Chat模型LoRA微调

文本记录GLM4-9B-Chat模型进行LoRA微调的过程。 一、环境&#xff1a; 操作系统: Ubuntu 22.04CUDA: 12.1GPU: 3090 x 2 创建conda环境&#xff1a; conda create -n glm4 python3.10.14 conda activate glm4cd /home/data/chatglm4-finetune 二、数据准备 运行d…

Java学习 - Docker管理和容器命令 实例

docker管理 查看docker版本&#xff0c;检测是否可用 sudo docker version查看docker 系统信息 sudo docker infodocker容器命令 容器状态 容器标识 容器长uuid容器短uuid容器名字 查看容器状态 sudo docker status [容器标识1] [容器标识2] [容器标识n]深入查看容器信息 su…

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…

虚设备与Spooling技术

虚设备&#xff08;Virtual Device&#xff09;和Spooling技术是操作系统中用于提高输入/输出&#xff08;I/O&#xff09;效率的两种技术。下面分别对它们进行解释&#xff1a; ### 虚设备&#xff08;Virtual Device&#xff09; 虚设备是一种软件技术&#xff0c;它允许多个…

安装stable-baselines3[extra]

新方法&#xff1a; %pip install AutoROM.accept-rom-license0.4.2 %pip install stable-baselines3[extra]旧方法&#xff1a; https://www.atarimania.com/rom_collection_archive_atari_2600_roms.html https://drive.google.com/file/d/1uuPaYGf2f4DaEUJkS36LvSEWokgC8qj…

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

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

OpenCloudOS 8.8 一键安装 Oracle 11GR2 单机

前言 Oracle 一键安装脚本&#xff0c;演示 OpenCloudOS 8.8 一键安装 Oracle 11GR2 单机&#xff08;231017&#xff09;过程&#xff08;全程无需人工干预&#xff09;。 ⭐️ 脚本下载地址&#xff1a;Shell脚本安装Oracle数据库 安装准备 1、安装好操作系统&#xff0c;建…

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

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

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

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