Git入门实战教程之创建版本库

一、Git简介

Git是一个分布式版本控制系,分层结构如下:

Git分为四层:

1、工作目录

当前正在工作的项目的实际文件目录,我们执行命令git init时所在的地方,也就是我们执行一切文件操作的地方。

2、暂存区

暂存区是一个介于工作目录和本地仓库之间的缓冲区域。它保存了已经通过git add命令添加但尚未通过git commit命令提交到本地仓库的修改。在工作目录中对文件进行修改后,可以使用git add命令将这些修改添加到暂存区,然后使用git commit命令将暂存区中的内容提交到本地仓库。

3、本地仓库

本地仓库是Git存储项目完整历史记录的地方,包含了所有提交的版本和元数据信息。当通过git commit命令提交暂存区中的修改时,Git会将这些修改保存到本地仓库中。本地仓库包括了完整的版本历史记录,可以通过git log命令查看提交历史,以及通过git checkout命令切换不同的分支或恢复到不同的提交状态。

4、远程仓库

远程仓库是位于网络上的一个或多个Git仓库,通常用来协作和共享代码。它可以托管在诸如GitHub、GitLab、Bitbucket等服务上,也可以是自己搭建的Git服务器。远程仓库包含了与本地仓库相同的完整历史记录,可以通过git push命令将本地仓库中的修改推送到远程仓库,通过git pull命令从远程仓库拉取更新到本地仓库,以及通过git fetch命令获取远程仓库的更新但不合并到当前分支。

二、Git常用命令之创建版本库

1、初始化版本库

在本地项目目录中打开命令行界面,然后使用git init命令初始化一个新的Git仓库。这将在当前目录下创建一个名为.git的隐藏文件夹,用于存储Git的版本控制信息和配置。

2、查看修改的文件

在本地修改项目文件后,使用git status命令用于查看当前工作区和暂存区的状态。执行这个命令可以了解到哪些文件被修改了、哪些文件已经添加到暂存区、以及哪些文件准备好被提交到本地仓库等信息。通常在进行任何提交之前,都会先执行 git status 命令来确认当前的工作状态。

git status是比较重用的命令之一:主要是用来查看我们文件状态的,红色为工作区;绿色为暂存区

3、检查修改的文件内容

当我想要查看在提交之前我所做的具体修改时,可以使用 git diff 命令来查看工作目录中的文件和暂存区之间的差异。

  • git diff 比较的是工作目录中未暂存文件的修改与暂存区之间的差异(未add前使用)。
  • git diff --cached 比较的是暂存区中即将提交的文件与上一次提交到本地仓库的文件之间的差异(未commit前使用)。

4、添加文件到版本库

将项目中的文件添加到Git的跟踪列表中,我可以使用git add命令。例如,假设我有一个名为README.md的文件需要添加:

也可以使用git add .命令一次性添加所有修改过的文件。

5、提交文件到版本库

一旦我添加了文件,就可以使用git commit命令将这些文件的快照保存到Git版本库中。每次提交都需要添加一条提交消息,说明本次提交的目的。

在上面的命令中,-m参数用来添加提交消息。

6、连接远程仓库(可选)

 如果打算与他人协作或者备份我的代码到远程服务器,我需要将本地仓库连接到远程仓库。假设我已经有了一个远程仓库地址,例如GitHub或GitLab等,我可以使用git remote add命令添加远程仓库。

git remote add origin <remote_repository_URL>

 

这里origin是远程仓库的别名,可以自定义。<remote_repository_URL>是远程仓库的URL。

7、推送到远程仓库

如果已经连接了远程仓库,并且想要将本地仓库中的代码推送到远程仓库,可以使用git push命令。

git push -u origin master

 

上述命令将本地仓库中的master分支推送到远程仓库的master分支。 -u 参数是设置跟踪关系,它使得以后的 git pushgit pull 不需要指定远程和分支,直接执行即可。

参考文章:超详细的 Git 实战教程_git实战-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

软件测试常考面试题-软件测试面试宝典(一篇足矣)

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…

数据库表设计18条黄金规则

前言 对于后端开发同学来说&#xff0c;访问数据库&#xff0c;是代码中必不可少的一个环节。 系统中收集到用户的核心数据&#xff0c;为了安全性&#xff0c;我们一般会存储到数据库&#xff0c;比如&#xff1a;mysql&#xff0c;oracle等。 后端开发的日常工作&#xff…

C语言初阶—9函数

函数的声明 &#xff08;main函数前&#xff09;----告诉有一个函数 格式&#xff1a; 类型 函数名&#xff08;参数&#xff09;&#xff1b; 函数的声明 放到头文件add.c 函数的定义 ----创建函数----放到add.c 格式&#xff1a;类型 函数名(参数) { 语句项; } 在文…

leetcode.707. 设计链表

题目 题意&#xff1a; 在链表类中实现这些功能&#xff1a; get(index)&#xff1a;获取链表中第 index 个节点的值。如果索引无效&#xff0c;则返回-1。 addAtHead(val)&#xff1a;在链表的第一个元素之前添加一个值为 val 的节点。插入后&#xff0c;新节点将成为链表的…

Dubbo 序列化

Dubbo 序列化 1、什么是序列化和反序列化 序列化&#xff08;serialization&#xff09;在计算机科学的资料处理中&#xff0c;是指将数据结构或对象状态转换成可取用格式&#xff08;例如存成文件&#xff0c;存于缓冲&#xff0c;或经由网络中发送&#xff09;&#xff0c;…

MySQL数据库基础--事务

事务 是一组操作的集合&#xff0c;他是一个不可分割的工作单位&#xff0c;事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求&#xff0c;即这些操作要么同时成功&#xff0c;要么同时失败。 默认MySQL的事务是自动提交的&#xff0c;也就是说&#xff0c;当执行…

《C语言深度解剖》(2):详解C语言分支语句和循环

&#x1f921;博客主页&#xff1a;醉竺 &#x1f970;本文专栏&#xff1a;《C语言深度解剖》 &#x1f63b;欢迎关注&#xff1a;感谢大家的点赞评论关注&#xff0c;祝您学有所成&#xff01; ✨✨&#x1f49c;&#x1f49b;想要学习更多数据结构与算法点击专栏链接查看&am…

Node操作mysql

配置 安装mysql模块 npm i mysql建立连接 const mysql require(mysql);const db mysql.createPool({host: 127.0.0.1,user: root,password: admin123,database: my_db_01 });测试 // select 1没有任何实质性作用 只是检查mysql模块是否正常 db.query(select 1, (err, results…

修电机所需要的基本工具

等距式 模具 同心式模具 电机划线刀 压脚 千分尺 -----测量线径 钳形电流表------- 测量 空载 满载下的电流值 摇表&#xff0c; 测量线圈是否碰到外壳 指针式万用表 胶锤 整理线圈 绝缘纸和青稞纸&#xf…

RuoYi-Vue若依框架-vue前端给对象添加字段

处理两个字段的时候有需求都要显示在下拉框的同一行&#xff0c;这里有两种解决方案&#xff0c;一是后端在实体类添加一个对象&#xff0c;加注解数据库忽略处理&#xff0c;在接口处拼接并传给前端&#xff0c;二是在前端获取的数据数组内为每个对象都添加一个字段&#xff0…

Ethernet 汇总

Ethernet系统 硬件最小系统 CPU:可以是复杂的芯片,也可以是小的单片机DMA:用于减轻CPU负担,搬运数据系统Memory<->FIFOMAC:可以集成在芯片里面,用于CPU和PHY之间的通信MII:接口用于MAC和PHY的通信,包括控制MDIO和数据DataPHY:模拟器件,最底层,数据收发源头软件…

Vue3【进阶】

简介 https://cn.vuejs.org/guide/introduction.html 创建vue3工程 【基于 vue-cli创建】 基本和vue-cli的过程类似&#xff0c;只是选择的时候用vue3创建 【基于vite创建】【推荐】 【官网】https://vitejs.cn/ 【可以先去学一下webpack】 步骤 【https://cn.vitejs.…

PostgreSQL入门到实战-第三弹

PostgreSQL入门到实战 PostgreSQL安装之linux官网地址PostgreSQL概述linux安装PostgreSQL更新计划 PostgreSQL安装之linux 官网地址 声明: 由于操作系统, 版本更新等原因, 文章所列内容不一定100%复现, 还要以官方信息为准 https://www.postgresql.org/PostgreSQL概述 Postg…

【全套源码教程】基于SpringBoot+MyBatis+Vue的流浪动物救助网站的设计与实现

目录 前言 需求分析 可行性分析 技术实现 后端框架&#xff1a;Spring Boot 持久层框架&#xff1a;MyBatis 前端框架&#xff1a;Vue.js 数据库&#xff1a;MySQL 功能介绍 前台界面功能介绍 动物领养及捐赠 宠物论坛 公告信息 商品页面 寻宠服务 个人中心 购…

AI视觉入门:卷积和池化

从2012年以AlexNet为代表的模型问世以来&#xff0c;人工智能尤其是视觉cv部分飞速发展&#xff0c;在刚开始效果不如人类&#xff0c;到2015年在ImageNet1000数据集的表现就超过了人类。在Transformer模型出现之前&#xff0c;视觉模型的主要组成部分就是卷积和池化&#xff0…

在家也能赚钱!长期副业兼职,充分利用你的零碎时间!

2024年已然匆匆走过了三分之一&#xff0c;许多人或许都感受到了这一年大环境带来的压力。然而&#xff0c;对我而言&#xff0c;每个月的副业收入尚算可观&#xff0c;稳定在3000元以上&#xff0c;这让我深感庆幸&#xff0c;因为我找到了那份适合自己的副业。 打工的日子&a…

【40分钟速成智能风控1】互联网金融风险管理简介

目录 瓦联网金融的发展和现状 风险管理类型划分 欺诈风险 第一方和第三方 账户级和交易级 个人和团伙 互联网金融是传统金融业务与新兴互联网技术结合的一个交叉领域&#xff0c;例如互联网公司开展的金融业务&#xff0c;或者金融机构的线上化服务&#xff0c;都属于互联…

python 如何生成uuid

UUID&#xff08;Universally Unique Identifier&#xff09;是通用唯一识别码&#xff0c;在许多领域用作标识&#xff0c;比如我们常用的数据库也可以用它来作为主键&#xff0c;原理上它是可以对任何东西进行唯一的编码的。作为新手一看到类似varchar(40)这样的主键就觉得有…

从零到一:如何使用亮数据代理快速收集训练数据打造自己的AIGC大模型

这里写自定义目录标题 前言项目内容项目进展 1、本章节事项1.1、确定2个分类1.2、寻找来源网站1.2.1、京东搜索1.2.2、淘宝搜索1.2.3、唯品会搜索 1.3、编写代码&#xff0c;收集数据&#xff0c;并按照分类存放图片1.3.1、在Java项目里加载SeleniumChromeDriverJsoup的jar包1.…

【计算机毕业设计】医院电子病历管理系统

&#x1f389;**欢迎来到琛哥的技术世界&#xff01;**&#x1f389; &#x1f4d8; 博主小档案&#xff1a; 琛哥&#xff0c;一名来自世界500强的资深程序猿&#xff0c;毕业于国内知名985高校。 &#x1f527; 技术专长&#xff1a; 琛哥在深度学习任务中展现出卓越的能力&a…