Git详解及常用命令

一、Git概述

  • 官网:https://git-scm.com/

  • 安装:安装适合自己的版本,默认安装即可

  • 使用:选择一个文件夹,右键,当出现:Git Bash后说明安装成功,后续使用都是基于Git Bash

Git简介

  • Git是一个分布式版本控制工具

  • Git仓库

    • 本地仓库:自己电脑的Git仓库
    • 远程仓库:远程服务器上的Git仓库
  • commit:提交,将本地文件和版本信息保存到本地仓库

  • push:推送,将本地仓库文件和版本信息上传到远程仓库

  • pull:拉取,将远程仓库文件和版本信息下载到本地仓库

二、Git常用命令

  • 此处最最重要的是本地仓库操作远程仓库操作

Git全局设置

  • 设置用户信息
git config --global user.name "用户名"
git config --global user.email "邮箱"
  • 查看配置信息
git config --list
git config --global --list

获取Git仓库

  • 两种方式
    • 在本地初始化一个Git仓库
    • 从远程仓库克隆

在本地初始化Git仓库

执行步骤如下:

  • 在任意目录下创建一个空目录作为我们的本地Git仓库
  • 进入这个目录,点击右键打开Git bash窗口
  • 执行命令git init
  • 在当前目录中看到.git文件夹(隐藏文件夹)说明Git仓库创建成功

从远程仓库克隆

  • 命令:git clone [远程Git仓库地址]

工作区、暂存区和版本库

  • 版本库.git隐藏文件夹就是版本库,包含配置信息等
  • 工作区:包含.git文件夹的目录就是工作区,存放开发的代码
  • 暂存区:.git文件夹中有很多文件,其中有一个index文件就是暂存区,临时保存修改文件的地方
    在这里插入图片描述

Git工作区中文件的状态

Git工作区中的文件存在两种状态:

  • untracked 未跟踪(未被纳入版本控制)
  • tracked 已跟踪(被纳入版本控制)
    • Unmodified 未修改状态
    • Modified 已修改状态
    • Staged 已暂存状态

注意:这些文件的状态随着执行Git的命令发生变化

本地仓库操作

命令解释
git status查看文件状态
git add将文件的修改加入暂存区
git reset将暂存区的文件取消暂存或者是切换到指定版本
git commit将暂存区的文件修改提交到版本库
git log查看日志

加入暂存区

  • 命令后面的 . 指定是添加所有文件
git add .
  • 只添加 a.txt
git add a.txt

提交

  • 要使用 -m 来添加提交信息
git commit -m "提交信息"

查看日志信息

  • 查看详细的日志信息
git log
  • 查看简略的日志信息
git reflog
  • 若日志信息太多,按qctrl+c退出

回退到指定版本

  • 使用git reflog查看版本,最前面的是版本id,假设版本id为b210086
  • 再使用如下命令回退到该版本即可
git reset b210086

远程仓库操作

命令解释
git remote查看远程仓库
git remote add添加远程仓库
git clone从远程仓库克隆
git pull从远程仓库拉取
git push推送到远程仓库

查看远程仓库

  • 使用-v查看详细信息
git remote -v

添加远程仓库

  • 运行 git remote add <shortname> <url> 添加一个新的远程Git仓库,同时指定一个可以引用的简写
git remote add origin https://gitee.com/perry/repo.git
  • 注意:在远程仓库中创建了一个仓库后,远程仓库不要做初始化操作,不然无法从本地push上去。这是因为要使用git push之前,本地仓库一定要包含远程仓库的文件,不然会git push失败

推送至远程仓库

  • 命令:git push [remote-name] [branch-name]
git push origin master
  • 注意:在使用git push命令将本地文件推送至码云远程仓库时,需要进行身份认证,认证通过才可以推送
  • 若已经登录过一次,下次还需要认证,执行以下命令:
git config --global credential.helper.store

从远程仓库拉取

  • 从远程仓库获取最新版本并合并到本地仓库,命令:git pull [short-name] [branch-name]
git pull origin master
  • 注意:如果当前仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报错(fatal:refusing to merge unrelated histories)。解决此问题可以在git pull命令后加入参数--allow-unrelated-histories
git pull  --allow-unrelated-histories origin master
  • 会进入vim模式,直接保存并退出即可::wq

分支操作

  • 使用分支意味着把你的工作从开发主线上分离开来,以免影响开发主线。同一个仓库可以有多个分支,各个分支相互独立,互不干扰
  • 通过git init命令创建本地仓库时会默认创建一个master分支
命令解释
git branch查看分支
git branch [name]创建分支
git checkout [name]切换分支
git push [shortName] [name]推送至远程仓库分支
git merge [name]合并分支

查看分支

  • 列出所有本地分支
git branch
  • 列出所有远程分支
git branch -r
  • 列出所有本地分支和远程分支
git branch -a

创建分支

  • 创建分支,基于哪个分支创建的,则新分支会包含原分支的所有信息

新分支推送至远程仓库

  • 使用新分支推送到远程仓库后会发现不同分支的内容不同,即在远程仓库中master和新分支内容不同

合并分支

  • 将新分支(b1)的内容合并到master,先切换到master分支,再使用git mergie b1,此时b1分支就会合并到master分支,再使用git push origin master,则在远程仓库中master分支就合并了新分支的内容

分支操作

  • Git中的标签,指的是某个分支某个特定时间点的状态。通过标签可以很方便的切换到标记时的状态。
  • 比如用这个功能标记发布结点(v1.0、v1.2)

使用时注意事项

  • 在写代码前先pull一下
  • 写完代码先commit,再进行pullpush操作
命令解释
git tag列出已有的标签
git tag [name]创建标签
git push [shortName] [name]将标签推送至远程仓库
git checkout -b [branch] [name]检出标签

创建标签

  • 比如在完成一个阶段的代码开发,则在提交并推送代码后,可以创建标签并推送,远程仓库中的标签有着此时的所有代码

  • 示例:

git tag v1.0

将标签推送至远程仓库

  • 示例:
git push origin v1.0

检出标签

  • 使用场景:比如此时有v1.0v2.0两个标签,且v2.0v1.0更新,但是我们需要基于v1.0的代码进行修改,这个时候体现出标签的好处,因为我们在v1.0的时候打上了一个标签
  • 以下代码的功能是检出v1.0标签并基于v1.0代码创建一个新的分支b1.0并切换到该新分支
git checkout -b b1.0 v1.0

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

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

相关文章

MongoDB 面试题目

一、基础概念 MongoDB 的特点是什么&#xff1f; MongoDB是一种NoSQL数据库&#xff0c;具有以下特点&#xff1a; 文档存储模型 MongoDB 使用 BSON&#xff08;Binary JSON&#xff09; 格式存储数据&#xff0c;数据以文档的形式组织&#xff0c;类似于JSON对象。文档可以包…

路由追踪核心技术深度解析:Traceroute与Tracert命令实战指南(跨平台/抓包/网络安全防护)

目录 路由器是什么&#xff1f; 路由器的基本功能&#xff1a; 路由追踪技术&#xff08;Traceroute&#xff09; 路由追踪的工作原理 实现技术 路由追踪的输出示例 路由追踪的用途 traceroute 命令&#xff08;Linux 和 macOS&#xff09; 基本语法 常用选项 示例 …

4部署kibana:5601

kibana 是一个基于浏览器页面的Elasticsearch前端展示工具&#xff0c;, 是一个开源和免费的工具 Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面, 可以帮你汇总、分析和搜索重要数据日志 1.安装-所有的es节点 # tar xf kibana-6.4.1-linux-x86_64.t…

数据结构与算法-图论-最短路和其他的结合

介绍 最短路算法常与深度优先搜索&#xff08;DFS&#xff09;、动态规划&#xff08;DP&#xff09;、二分答案、拓扑排序等算法结合使用&#xff1a; - 最短路与DFS结合&#xff1a;在一些图的路径问题中&#xff0c;当需要访问特定的多个结点&#xff0c;且数据范围较小时…

AOP基础-01.快速入门

一.AOP 对于统计每一个业务方法的耗时这一操作&#xff0c;如果再业务层的每一个方法前获取方法运行的开始时间&#xff0c;方法结束获取结束时间&#xff0c;然后计算执行耗时&#xff0c;那这样就太繁琐了。能不能定义一个模板方法&#xff0c;使得该方法能够在业务层的方法执…

【笔记】redis回忆录(未完 重头过一遍)

了解 redis在linux上运行 没有window版本 有也是微软自己搞的 &#xff08;一&#xff09;安装与修改配置 1.在linux虚拟机上 安装gcc依赖 然后再usr/local/src解压在官网下载好的redis安装包 直接拖进去 tar -zxvf 安装包名字 tab键补齐 解压成功 进入软件 并执行编译命令…

Android OpenGLES2.0开发(十一):渲染YUV

人生如逆旅&#xff0c;我亦是行人 Android OpenGLES开发&#xff1a;EGL环境搭建Android OpenGLES2.0开发&#xff08;一&#xff09;&#xff1a;艰难的开始Android OpenGLES2.0开发&#xff08;二&#xff09;&#xff1a;环境搭建Android OpenGLES2.0开发&#xff08;三&am…

deep-research 专用评测数据集

Deep Research自2025年2月初由OpenAI推出后迅速引发全球关注&#xff0c;其通过端到端强化学习技术实现多步骤研究任务自动化&#xff0c;能在数十分钟内生成分析师水平报告&#xff0c;效率远超人类&#xff08;耗时从30分钟到30天不等&#xff09;&#xff0c;被学者评价为“…

SQL之order by盲注

目录 一.order by盲注的原理 二.注入方式 a.布尔盲注 b.时间盲注 三.防御 一.order by盲注的原理 order by子句是用于按指定列排序查询结果&#xff0c;列名或列序号皆可。 order by 后面接的字段或者数字不一样&#xff0c;那么这个数据表的排序就会不同。 order by 盲…

基于javaweb的SSM+Maven疫情物业系统设计和实现(源码+文档+部署讲解)

技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论…

提升数据洞察力:五款报表软件助力企业智能决策

概述 随着数据量的激增和企业对决策支持需求的提升&#xff0c;报表软件已经成为现代企业管理中不可或缺的工具。这些软件能够帮助企业高效处理数据、生成报告&#xff0c;并将数据可视化&#xff0c;从而推动更智能的决策过程。 1. 山海鲸报表 概述&#xff1a; 山海鲸报表…

IP-------GRE和MGRE

4.GRE和MGRE 1.应用场景 现实场景 居家工作&#xff0c;公司工作&#xff0c;分公司工作----------需要传输交换数据--------NAT---在该场景中需要两次NAT&#xff08;不安全&#xff09; 为了安全有两种手段-----1.物理专线---成本高 2.VPN--虚拟专用网---隧道技术--封装技…

音乐游戏Drummania(GITADORA)模拟器

文章目录 &#xff08;一&#xff09;Drummania和GITADORA&#xff08;1.1&#xff09;基本情况&#xff08;1.2&#xff09;机体 &#xff08;二&#xff09;模拟器&#xff08;2.1&#xff09;主程序&#xff08;2.2&#xff09;模拟器主题 &#xff08;三&#xff09;曲谱文…

gotool在线工具集

1. 包含各种 sql 处理 2. 包含 json 处理 3. 包含 图片处理 4. 跨平台传输 gotool

点击修改按钮图片显示有问题

问题可能出在表单数据的初始化上。在 ave-form.vue 中&#xff0c;我们需要处理一下从后端返回的图片数据&#xff0c;因为它们可能是 JSON 字符串格式。 vue:src/views/tools/fake-strategy/components/ave-form.vue// ... existing code ...Watch(value)watchValue(v: any) …

绩效管理与业务流程

绩效管理本质就是价值管理&#xff0c;或者说是能力管理&#xff0c;也就是通过一系列的科技手段去发现、证明一个人的能力和价值&#xff0c;然后给予科学、合理的利益分配。业务流程就是把企业的每一个零部件或者说齿轮都有效组合起来形成一个有机体为市场提供自己的独特价值…

Nginx处理http的流程

文章目录 前言一、发版本后旧版本可以用项目基本情况Nginx 配置**解释每一行的作用&#xff1a;****表现和行为&#xff1a;****适用场景**&#xff1a;资源的缓存策略 在这里插入图片描述 二&#xff0c; nginx处理http的流程Nginx 的 GitHub 源码地址 **Nginx 核心源码解读&a…

QT各种版本下载安装

参考链接&#xff1a; 【Qt】超详细&#xff01;Qt4.8.6和VS2010的配置及使用 由于QT官网一般现在进不去&#xff0c;所以下载一些QT版本只能通过镜像或者以前下载存储的安装包来进行&#xff0c;现在推荐两种方法 从参考链接中搬过来&#xff1a; 方案一&#xff1a;国内镜…

【STM32H743IIT6】STM32H7的ADC时钟频率设置问题 —— 网上大多文章未注意到的要点!

前言 我使用的是定时器触发ADC采样。最近在想达到ADC的最高采样率的时候&#xff0c;发现一直却卡在1Msps上不去&#xff0c;直到在硬汉嵌入式的论坛里才发现了答案&#xff1a;[ADC] STM32H743/H750的Y版和V版芯片ADC的主频区别 这篇文章就详细的讲一下这个问题&#xff0c;这…