Git实用指南(精简版)

目录

读者须知

Git是什么

Git的原理

文件在Git中的几种状态

快速上手

结尾


读者须知

本文章适合从未接触过git,或者需要深度学习Git的用户进行阅读.

文末有详细的文档,读者可以前往Github下载阅读!!三克油

Git是什么

简单来说,Git是一个代码备份工具,你可以使用指令对某些节点打上标注信息并且进行备份.你可以利用他在任何时候对代码进行备份,检阅之前的备份,回退到某个备份.额外的还可以合并他人的备份,并且这一系列可以不需要联网就能进行!(当然有网络就会更方便)

官方一点的讲法,Git 是一款分布式的、可供多人开发的版本控制软件,在多人项目开发当中用于控制项目版本,方便执行该场景下的提交、合并、回退等操作。

Git的原理

  • Workspace:工作区,就是你写代码的 IDE 所看见的区域
  • Index / Stage:暂存区,执行 add 和 stash 之后,你的代码将会被放入该区域,不过 add 会对其进行追踪
  • Repository:本地仓库,执行 commit 之后将记录保存到本地
  • Remote:远程仓库,执行 push 之后将本地的记录与远程对比再合并

文件在Git中的几种状态

在系统中,一切资源皆文件,所有的文件可以在IDE查看他们的状态来确认他们被提交到哪个区当中!

Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到 git 库, 不参与版本控制. 通过 git add 状态变为 Staged.

Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为 Modified. 如果使用 git rm 移出版本库, 则成为 Untracked 文件

Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过 git add 可进入暂存 staged 状态, 使用 git checkout 则丢弃修改过, 返回到 unmodify 状态, 这个 git checkout 即从库中取出文件, 覆盖当前修改

Staged: 暂存状态. 执行 git commit 则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为 Unmodify 状态. 执行 git reset HEAD filename 取消暂存, 文件状态为 Modified

快速上手

理解完基本概念,对Git有一个基础的模型,就可以上手写代码了.关于Git的安装,可以搜索Git官网来下载Git Bash ,这里不再讲解!!!

打开Git Bash,可以发现是一个类似于CMD的黑框框,而上面的一系列操作,都需要你以指令的形式敲入这个框当中来进行,你的脑海中要你能够知道你敲的指令是到哪一步了,这样才能够游刃有余.

(1)创建一个本地git仓库

首先找一个空白目录,然后将Git Bash的目录切到该目录,输入:

git init

这样你就拥有了一个仓库,会生成一个隐形的.git目录,存放你的备份信息

(2)设置个人信息

git config --global user.name "你的昵称,用于显示提交信息"
git config --global user.email "你的邮箱"

这样你的提交会带上这些信息,方便他人联系你

(3)拉取一个仓库

git clone "https://xxxx.com/url"

这样可以将别人的仓库拉取到本地的当前路径,拉取完后会有该远程仓库的信息

(4)给远程仓库地址取别名

git remote add origin https:www.github.com/xxx.git

这里将https:www.github.com/xxx.git取一个代号叫origin,如果代号已存在会失败

(4)给远程仓库地址改别名

git remote set-url origin https:www.github.com/xxx.git

这里将代号叫origin的远程仓库地址改为https:www.github.com/xxx.git,如果origin不存在会失败

(5)将本地开发进度推送到暂存区

git add .

这一步会将当前项目所有的文件加入暂存区,后面提交会将暂存区内所有内容提交到本地仓库

(6)提交代码到本地仓库

git commit  -m "说明信息"

这一步会将暂存区内所有内容形成提交记录交到本地仓库

(7)切换分支

git checkout -b xxx

这一步会将当前分支复制一份出来,命名为xxx分支,并且将切换到xxx分支

如果不带-b,就是直接切换到xxx分支

(8)获取远程仓库的分支

虽然Git可以不需要联网,但是一般有一个统一的仓库,方便大家更新进度.当你需要将别人的备份合并到你本地时,你需要通过网络从该仓库上获取.

git fetch origin A:B

这一步将远程仓库的A分支,拉取到本地的origin/B分支上,其中形似origin/B的分支被称为远程追踪分支

(9)分支合并

git merge AAA

这一步会将你本地的AAA分支合并到当前所在分支,当然你也可以将其换成某个程追踪分支

(10)拉取并合并分支

git pull origin A:B

没记错的话,这一步会将远程仓库的A分支拉取到本地的origin/B分支上,并自动将origin/B合并到本地的B分支上.也相当于fetch与merge的组合

(11)推送分支

git push -u origin A:B

这一步将本地的A分支推送到远程仓库的B分支,并建立追踪,下次可以直接在A分支上使用git push代替该语句

(12)查看远程仓库的信息

git remote -v

这样可以查看你的git push和git pull的目标仓库是哪个 

结尾

Git指令实在是太多了,推荐你看看我整理的文档把 ,祝你早日精通Git成为大神!

最后欢迎批评指正!图片来源应该也包含在参考链接当中.

https://github.com/theOnlyUnique/GitFortune/

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

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

相关文章

YOLOv8目标检测(七)_AB压力测试

YOLOv8目标检测(一)_检测流程梳理:YOLOv8目标检测(一)_检测流程梳理_yolo检测流程-CSDN博客 YOLOv8目标检测(二)_准备数据集:YOLOv8目标检测(二)_准备数据集_yolov8 数据集准备-CSDN博客 YOLOv8目标检测(三)_训练模型:YOLOv8目标检测(三)_训…

在 Spring Boot 3 中实现基于角色的访问控制

基于角色的访问控制 (RBAC) 是一种有价值的访问控制模型,可增强安全性、简化访问管理并提高效率。它在管理资源访问对安全和运营至关重要的复杂环境中尤其有益。 我们将做什么 我们有一个包含公共路由和受限路由的 Web API。受限路由需要数据库中用户的有效 JWT。 现在用户…

线程知识总结(一)

1、概述 1.1 进程与线程 进程是程序运行时,操作系统进行资源分配的最小单位,包括 CPU、内存空间、磁盘 IO 等。从另一个角度讲,进程是程序在设备(计算机、手机等)上的一次执行活动,或者说是正在运行中的程…

OpenCV圆形标定板检测算法findGrid原理详解

OpenCV的findGrid函数检测圆形标定板的流程如下: class CirclesGridClusterFinder {CirclesGridClusterFinder(const CirclesGridClusterFinder&); public:CirclesGridClusterFinder

基于SpringBoot+Vue实现的个人备忘录系统

🎄 写在前面 最近学习vue,所以抽时间就用SpringBootVue做了一个个人备忘录,本意是想打造一个轻量级的、自托管的备忘录中心,可能是老了(haha),很多时候都觉得好记性不如烂笔头,所以就有了这个小…

docker简单命令

docker images 查看镜像文件 docker ps -a 查看容器文件 docker rm 0b2 删除容器文件,id取前三位即可 docker rmi e64 删除镜像文件(先删容器才能删镜像),id取前三位即可 在包含Dockerfile文件的目录…

【前端】vue数组去重的3种方法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、数组去重说明二、Vue数组去重的3种方法 前言 随着开发语言及人工智能工具的普及,使得越来越多的人会主动学习使用一些开发工具,本…

BPMN与一般的流程图区别在那里?

1. 语义和标准性 BPMN(业务流程建模符号) 基于标准语义:BPMN是一种标准化的业务流程建模语言,拥有一套严谨的语义规范。它由国际对象管理组织(OMG)维护,定义了事件、活动、网关和流向等元素的确…

《薄世宁医学通识50讲》以医学通识为主题,涵盖了医学的多个方面,包括医学哲学、疾病认知、治疗过程、医患关系、公共卫生等

《薄世宁医学通识50讲》是一门由薄世宁医生主讲的医学通识课程,该课程旨在通过深入浅出的方式,向广大听众普及医学知识,提升公众对医学的认知和理解。 晓北斗推荐-薄世宁医学通识 以下是对该课程的详细介绍: 一、课程概述 《薄世…

二八(vue2-04)、scoped、data函数、父子通信、props校验、非父子通信(EventBus、provideinject)、v-model进阶

1. 组件的三大组成部分(结构/样式/逻辑) 1.1 scoped 样式冲突 App.vue <template><!-- template 只能有一个根元素 --><div id"app"><BaseOne></BaseOne><BaseTwo></BaseTwo></div> </template><script…

操作系统文件管理

一、文件系统 1. 文件的概念 &#xff08;1&#xff09;文件的概念与文件系统 文件是操作系统中的重要概念&#xff0c;是存储在计算机硬盘上的信息集合&#xff0c;如文本文档、图片、程序等。在系统运行时&#xff0c;资源调度和分配以进程为基本单位&#xff0c;而用户的…

【论文研读】U-DiTs:在U型扩散Transformer中引入下采样Token,以更低计算成本超越DiT-XL/2

推荐理由 这篇论文提出了一种新的U型扩散Transformer模型&#xff08;U-DiT&#xff09;&#xff0c;该模型通过对自注意力机制中的查询、键和值进行下采样&#xff0c;有效减少了计算冗余&#xff0c;同时提高了性能。论文中的研究不仅包含理论分析和实验验证&#xff0c;还展…

清远榉之乡托养机构为你深度分析:特殊碳水化合物饮食对自闭症的作用

在探索自闭症干预方法的道路上&#xff0c;各种尝试不断涌现。其中&#xff0c;特殊碳水化合物饮食引起了不少家长的关注。那么&#xff0c;特殊碳水化合物饮食对自闭症究竟有怎样的作用呢&#xff1f;今天&#xff0c;清远榉之乡托养机构为你深度分析。 榉之乡大龄自闭症托养机…

Linux shell脚本用于常见图片png、jpg、jpeg、tiff格式批量转webp格式后,并添加文本水印

Linux Debian12基于ImageMagick图像处理工具编写shell脚本用于常见图片png、jpg、jpeg、tiff格式批量转webp并添加文本水印 在Linux系统中&#xff0c;使用ImageMagick可以图片格式转换&#xff0c;其中最常用的是通过命令行工具进行。 ImageMagick是一个非常强大的图像处理工…

【系统】Windows11更新解决办法,一键暂停

最近的windows更新整的我是措不及防&#xff0c;干啥都要关注一下更新的问题&#xff0c;有的时候还关不掉&#xff0c;我的强迫症就来了&#xff0c;非得关了你不可&#xff01; 经过了九九八十一难的研究之后&#xff0c;终于找到了一个算是比较靠谱的暂停更新的方法&#x…

PostgreSQL技术内幕21:SysLogger日志收集器的工作原理

0.简介 在前面文章中介绍了事务模块用到的事务日志结构和其工作原理&#xff0c;本文将介绍日志的另一个部分&#xff0c;操作日志&#xff0c;主要去描述SysLogger日志的工作原理&#xff0c;流程以及其中关键的实现&#xff1a;日志轮转&#xff0c;刷盘性能问题等&#xff…

坑人 C# MySql.Data SDK

一:背景 1. 讲故事 为什么说这东西比较坑人呢?是因为最近一个月接到了两个dump,都反应程序卡死无响应,最后分析下来是因为线程饥饿导致,那什么原因导致的线程饥饿呢?进一步分析发现罪魁祸首是 MySql.Data,这就让人无语了,并且反馈都是升级了MySql.Data驱动引发,接下…

武汉市电子信息与通信工程职称公示了

2024年武汉市电子信息与通信工程专业职称公示了&#xff0c;本次公示通过人员有109人。 基本这已经是今年武汉市工程相关职称最后公示了&#xff0c;等待出证即可。 为什么有人好奇&#xff0c;一样的资料&#xff0c;都是业绩、论文等&#xff0c;有的人可以过&#xff0c;有的…

MySQL数据库——门诊管理系统数据库数据表

门诊系统数据库his 使用图形化工具或SQL语句在简明门诊管理系统数据库his中创建数据表&#xff0c;数据表结构见表2-3-9&#xff5e;表2-3-15所示。 表2-3-9 department&#xff08;科室信息表&#xff09; 字段名称 数据类型 长度 是否为空 说明 dep_ID int 否 科室…

基于Python3编写的Golang程序多平台交叉编译自动化脚本

import argparse import os import shutil import sys from shutil import copy2from loguru import loggerclass GoBuild:"""一个用于构建跨平台执行文件的类。初始化函数&#xff0c;设置构建的主文件、生成的执行文件名称以及目标平台。:param f: 需要构建的…