Git版本管理

news2024/9/22 15:50:13

Git版本介绍

Git 是一个分布式版本控制系统,它被广泛用于协作软件开发和管理代码的变更。Git 的设计目标是为了处理速度快、灵活性强、数据完整性好的版本管理需求。以下是 Git 版本管理的详细介绍:

版本控制系统 (VCS):
Git 是一种版本控制系统,用于跟踪和管理文件的不同版本和变更历史。
版本控制系统允许开发人员协作,追踪文件的修改,回滚到以前的版本,并解决冲突。

分布式版本控制:
Git 是一种分布式版本控制系统,每个开发者都拥有完整的代码库的副本。
这使得在没有网络连接的情况下工作成为可能,并允许多个开发者并行工作而不受中央服务器的限制。

工作区、暂存区和仓库:
Git 有三个主要的概念:工作区(Working Directory)、暂存区(Staging Area)和仓库(Repository)。
工作区是项目文件夹中的实际文件,暂存区是一个中间区域,用于准备提交,仓库是包含完整版本历史的存储库。

提交(Commit):
提交是 Git 中保存代码变更的基本操作。
提交将修改从工作区保存到暂存区,然后将暂存区的内容添加到版本历史中。

分支(Branch):
分支是代码开发的不同路径,它们允许同时进行多个任务,而不会影响主要代码。
Git 允许创建、合并和删除分支,使得开发和测试更加灵活。

合并(Merge):
合并是将两个或多个分支的变更合并成一个新的分支或主分支的过程。
合并时可能会发生冲突,需要手动解决。

远程仓库(Remote Repository):
远程仓库是托管在网络上的 Git 仓库,如 GitHub、GitLab 或 Bitbucket。
开发者可以推送(push)本地变更到远程仓库,或者拉取(pull)远程仓库的变更到本地。

分支管理策略:
Git 允许使用不同的分支管理策略,如主分支开发、特性分支开发和发布分支管理,以满足不同的开发需求。

标签(Tag):
标签用于为代码库的特定版本创建有意义的名称,以便在未来轻松引用和查找。

历史查看和回滚:
Git 允许查看代码历史记录,包括每个提交的详细信息。
可以轻松地回滚到先前的版本,以解决问题或恢复旧的代码状态。

分布式开发:
Git 支持多人协作开发,多个开发者可以在不同的分支上工作,然后将其合并到共享的主分支中。

自动化工具和集成:
Git 可以与许多自动化工具和集成(如 CI/CD 工具)一起使用,以加速开发和部署流程。
总之,Git 是一种功能强大、高效的版本管理工具,它使开发者能够更好地协作、追踪代码变更并确保数据完整性,从而提高了软件开发的效率和质量。无论是个人项目还是大型团队,Git 都是一个不可或缺的工具。

Git安装

首先我们需要去 Git 官网下载对应系统的软件了,下载地址为 git-scm.com或者gitforwindows.org,或者阿里镜像
在这里插入图片描述

这里可以选择合适的git版本;后面就是正常的安装流程,安装完毕之后在电脑菜单中会有Git文件里面都是Git文件在这里插入图片描述

Git使用

首先前往Gitee官网,登录账号
gitee官网
在这里插入图片描述

当登陆完成后我们就会进入首页,在首页的右上方有一个+号在这里插入图片描述在这里插入图片描述点击新建仓库
在这里插入图片描述然后新建仓库

在点击新建仓库后,我们取一个新的仓库名字。如果你取的名字之前取过,那么就会出现仓库命名冲突,然后出现以下情况。这个时候我们需要换一个名字,并且设置一个路径(这个路径是将来你的资源链接后面的路径,建议取一个和上传的文件相关的名字,路径必须使用英文)
在这里插入图片描述以上就是仓库的操作

上传文件

首先选择一个文件,进入文件根目录,鼠标右击,点击Open Git Bash here,进入git命令行:

Git基本操作

创建本地仓库git init
项目根目录所有文件添加至本地仓库git add .
为本次添加设置版本号git commit -m “wdad”
查看本地仓库关联的远程仓库:git remote -v
本地仓库关联远程仓库git remote add origin 远程仓库地址
本地仓库删除关联的远程仓库git remote remove origin
本地仓库推送至远程仓库git push -u origin master
从本次仓库关联的远程仓库下拉git pull

这些就是Git版本管理上传文件的基本命令

运行Git命令

当我们执行 git init 命令时,Git 会在当前目录下创建一个名为 .git 的隐藏文件夹,这个文件夹中包含了 Git 仓库所需的所有信息。同时,Git 也会为我们自动创建一个 master 分支。
在执行 git init 命令后,我们可以将项目中的文件添加到 Git 仓库中进行版本控制。接下来,我会介绍一些常用的 git 命令行操作:

git add <file>:将指定的文件添加到暂存区,准备提交;
git commit -m "<message>":将暂存区中的文件提交到本地仓库,同时可以附加提交信息;
git status:查看当前仓库的状态,显示有变动的文件;
git log:查看提交历史,显示所有的提交记录;
git diff <file>:比较工作区中的文件和暂存区或本地仓库中的文件的差异;
git branch:显示当前仓库的所有分支;
git checkout <branch>:切换到指定的分支;
git merge <branch>:合并指定分支到当前分支;
git push origin <branch>:将本地分支推送到远程仓库;
git pull origin <branch>:从远程仓库拉取最新的代码到本地分支。

运行Git命令可能会出现的报错

在使用 git init 命令进行版本控制时,可能会出现以下一些常见问题:

已存在的Git仓库: 如果在当前目录下已经存在一个 .git 文件夹,则表示该目录已经是一个 Git 仓库。此时再次执行 git init 命令会导致错误。需要注意在正确的目录中执行 git init。
权限问题: 在某些情况下,可能会因为权限问题而无法成功执行 git init 命令。这通常发生在你没有足够的权限在当前目录下创建文件或文件夹。确保你有足够的权限执行该命令。
目录不存在: 如果你尝试在一个不存在的目录中执行 git init 命令,Git 会报错并指示找不到该目录。请确保你在一个存在的目录中执行命令。
已存在的文件冲突: 如果当前目录下存在与 .git 文件夹同名的文件,如 file.git,则 git init 命令将会失败。确保当前目录下没有与 .git 同名的文件。
远程仓库关联: git init 只是用于初始化本地仓库,如果你想要与远程仓库进行交互,还需要关联远程仓库。可以使用 git remote add origin <remote-url> 命令将本地仓库与远程仓库进行关联。

如何解决问题

已存在的Git仓库: 如果当前目录下已经存在一个 Git 仓库,并且你想重新初始化一个新的仓库,可以先将旧的 .git 文件夹删除,然后再执行 git init 命令来初始化新的仓库。
权限问题: 当遇到权限问题时,可以尝试使用管理员身份或超级用户执行 git init 命令。如果你无法获得足够的权限,可以与系统管理员或拥有权限的人员进行协商和寻求帮助。
目录不存在: 如果目录不存在,可以先创建目录,然后在新创建的目录中执行 git init 命令。
已存在的文件冲突: 如果目录中已经存在与 .git 同名的文件,可以尝试重命名或移动该文件,确保当前目录下没有与 .git 同名的文件,然后再执行 git init 命令。
远程仓库关联: 如果你希望与远程仓库进行交互,需要先关联远程仓库。可以使用 git remote add origin <remote-url> 命令将本地仓库与远程仓库进行关联。其中 <remote-url> 是远程仓库的 URL 地址。

git remote add origin 链接

然后当你提交完毕后项目之后就需要执行
在这里插入图片描述git push - u origin master 上传远程仓库

git push -u origin master命令用于将本地的代码变更上传到名为origin的远程仓库中的master分支。这个命令的作用是将您在本地做出的代码更改同步到远程仓库,以便其他开发者可以获取最新的代码。

具体来说,这个命令会将本地仓库中的master分支的提交推送到远程仓库中的master分支。使用-u选项将本地分支与远程分支相关联,这样在以后的推送中,您只需简单地执行git push即可。

这段命令并不是必须的,它只是用于配置默认的上游分支,并关联本地分支和远程分支的关系。一旦完成了这个设置,以后再执行git push命令时,Git会自动将本地分支的更改推送到关联的远程分支。

如果您在使用Git时,已经设置了正确的远程仓库地址并克隆了该仓库,那么执行git push命令就足够将资源成功上传到Gitee(或其他远程仓库)上了。命令中的-u origin master部分只是帮助您建立起本地分支和远程分支的追踪关系,以便以后更方便地进行推送操作。

git push - u origin master 上传远程仓库

git push -u origin master命令用于将本地的代码变更上传到名为origin的远程仓库中的master分支。这个命令的作用是将您在本地做出的代码更改同步到远程仓库,以便其他开发者可以获取最新的代码。

具体来说,这个命令会将本地仓库中的master分支的提交推送到远程仓库中的master分支。使用-u选项将本地分支与远程分支相关联,这样在以后的推送中,您只需简单地执行git push即可。

这段命令并不是必须的,它只是用于配置默认的上游分支,并关联本地分支和远程分支的关系。一旦完成了这个设置,以后再执行git push命令时,Git会自动将本地分支的更改推送到关联的远程分支。

如果您在使用Git时,已经设置了正确的远程仓库地址并克隆了该仓库,那么执行git push命令就足够将资源成功上传到Gitee(或其他远程仓库)上了。命令中的-u origin master部分只是帮助您建立起本地分支和远程分支的追踪关系,以便以后更方便地进行推送操作。

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

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

相关文章

深度ESP32 PWM教程如何在ESP32 中使用PWM

关于ESP32PWM的简要说明 ESP32 SoC 满载了非常有用的外设&#xff0c;PWM 就是其中之一。是的。ESP32 的芯片中有一个专用的 PWM 硬件模块。脉宽调制或简称PWM是一种成熟且广泛使用的供电技术。 您可以使用 ESP32 的 PWM 来驱动 LED、电机&#xff08;普通直流电机和无刷电机…

Vue2项目练手——通用后台管理项目第六节

Vue2项目练手——通用后台管理项目 用户管理页table表格获取表格数据目录列表user.jsmock.jsindex.jsUsers.vue 新增和编辑功能Users.vue 删除功能使用的组件Users.vue 用户管理页 table表格 使用的组件和前面的表格使用的一致。 获取表格数据 目录列表 user.js import Mo…

基于SpringBoot的在线拍卖系统

基于SpringBootVue的在线拍卖系统&#xff0c;前后端分离 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBoot、Vue、Mybaits Plus、ELementUI工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 【主要功能】 后台&#xff1a;用户管理、商品类型管理…

无需设计经验,也能制作出精美的房地产电子传单

在数字化时代&#xff0c;传统的纸质传单已经不能满足人们对于互动和个性化的需求。为此&#xff0c;许多房地产公司开始将目光转向H5微传单&#xff0c;这是一种通过互联网和手机浏览器来传达信息的创新方式。今天&#xff0c;我们将教你如何使用乔拓云网制作房地产微传单H5&a…

STC单片机+EC11编码器实现调节PWM输出占空比

STC单片机+EC11编码器实现调节PWM输出占空比 📌相关篇《stc单片机外部中断+EC11编码器实现计数功能》 📍《STC15单片机特有的PWM寄存器和普通定时器实现PWM输出》 🎬效果演示: 🌼 通过逻辑分析仪获取P11引脚上的信号波形,查看其对应输出的占空比。 ✨本例程基于上面两…

Laravel 模型的关联写入多对多的关联写入 ⑩③

作者 : SYFStrive 博客首页 : HomePage &#x1f4dc;&#xff1a; THINK PHP &#x1f4cc;&#xff1a;个人社区&#xff08;欢迎大佬们加入&#xff09; &#x1f449;&#xff1a;社区链接&#x1f517; &#x1f4cc;&#xff1a;觉得文章不错可以点点关注 &#x1f44…

vue 页面加水印

首先创建一个waterMark.js文件&#xff0c;当然文件命名可自定义&#xff0c; use strictconst watermark {}/**** param {要设置的水印的内容} str* param {需要设置水印的容器} container*/ const setWatermark (str, container) > {const id 1.23452384164.123412415…

计算机网络第一章:概述

一.因特网概述 1.1网络、互联网(互连网)和因特网 网络由若干结点和连接这些结点的链路组成&#xff0c;可以是有线链路&#xff0c;也可以是无线链路 互连网&#xff1a;多个网络通过路由器互连起来&#xff0c;这样就构成了一个覆盖范围更大的网络&#xff0c;即互连网。因此…

spring注解@Component、@controller、@service、@repository

使用之前需要在spring.xml配置文件中配置 只有扫描正确&#xff0c;且应标记注解的类正确标记过后&#xff0c;spring容器才会帮组我们创建并且管理bean对象 Component注解 作用&#xff1a;把普通pojo实例化到spring容器中&#xff0c;相当于之前xml配置文件中的 &#xff…

【数据结构】链表C++编写的,它定义了一个链表,并实现了一些基本的链表操作,如创建新节点、插入节点、清空链表、输出链表以及查找节点

// 引入标准输入输出流库&#xff0c;用于输出操作 #include <iostream> // 引入标准库中的stdlib&#xff0c;包含了rand()函数和其他相关函数 #include <cstdlib> // 引入标准库中的time&#xff0c;包含了time()函数和其他相关函数 #include <ctim…

【Linux】高级IO --- Reactor网络IO设计模式

人其实很难抵制诱惑&#xff0c;人只能远离诱惑&#xff0c;所以千万不要高看自己的定力。 文章目录 一、LT和ET模式1.理解LT和ET的工作原理2.通过代码来观察LT和ET工作模式的不同3.ET模式高效的原因&#xff08;fd必须是非阻塞的&#xff09;4.LT和ET模式使用时的读取方式 二…

正反向代理理解

正向代理&#xff08;Forward Proxy&#xff09;和反向代理&#xff08;Reverse Proxy&#xff09;是两种用于网络通信的代理服务器&#xff0c;它们分别用于不同的场景和目的。 正向代理&#xff08;Forward Proxy&#xff09;&#xff1a; 正向代理是位于客户端和目标服务器…

球谐函数在环境光照中的使用原理

在三维空间中如何对场景光照进行球谐函数展开 图形学论文解析与复现【Spherical Harmonic Lighting:The Gritty Details】 首先&#xff0c;对场景中某像素点的漫反射光照进行计算。 L ( p , w o ) ∫ Ω L ( w i ) n ⋅ w i d w i L(p,w_o) \int_{\Omega}L(w_i)n\cdot w_i…

cad打印样式丢失怎么处理?

一提到CAD软件&#xff0c;我相信很多朋友都特别熟悉&#xff0c;因为在工作中很多的图纸设计都有它的功劳&#xff0c;经常从事cad设计的朋友对于cad打印样式都非常地精通了&#xff0c;在打印样式里包括了图纸的颜色、线条等&#xff0c;由于各种原因cad打印样式丢失了&#…

自行实现字符串转浮点数函数atof()

【重复造轮子的原因】 尽管atof是标准C中自带的函数,用于将字符串转为浮点数,但是在某些环境下有可能没法使用的(例如CUDA环境中,没有atof函数,但是math.h可以使用),因此自行实现。 【通过的测试用例】 【实现的代码】 #include <stdio.h> #include <math.h…

linux(rhel7)内核参数优化

内核参数 Linux sysctl.d 配置内核参数 rhel7中sysctl.d和sysctl.conf的执行顺序 执行顺序&#xff1a; sysctl.d > /etc/sysctl.conf sysctl.d的执行顺序&#xff1a; /etc/sysctl.d/run/sysctl.d/usr/local/lib/sysctl.d/usr/lib/sysctl.d/lib/sysctl.d/ 对于不同目录下…

交换排序——冒泡排序、快速排序

交换排序就是通过比较交换实现排序。分冒泡排序和快速排序两种。 一、冒泡排序&#xff1a; 1、简述 顾名思义就是大的就冒头&#xff0c;换位置。 通过多次重复比较、交换相邻记录而实现排序&#xff1b;每一趟的效果都是将当前键值最大的记录换到最后。 冒泡排序算法的原…

如何关闭一个tcp连接 阻塞和等待的区别 b树查找的过程

如何关闭一个 TCP 连接 可能大家第一反应是「杀掉进程」不就行了吗&#xff1f; 是的&#xff0c;这个是最粗暴的方式&#xff0c;杀掉客户端进程和服务端进程影响的范围会有所不同&#xff1a; • 在客户端杀掉进程的话&#xff0c;就会发送 FIN 报文&#xff0c;来断开这个客…

企业网络小实验-MUX-Vlan(NAT)

路漫漫其修远兮&#xff0c;吾将上下而求索 直接上实验 实验说明 模拟公司的部门实验&#xff0c; &#xff08;1&#xff09;公司主机如图所示&#xff0c;配置DNS服务器&#xff0c;配置NAT地址转换&#xff08;使用easy-ip的形式&#xff09;访问外网。 &#xff08;2&…

基于SSM的家政服务网站

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…