Git 版本控制 常用操作和项目应用

一、前言

1、何为版本控制?

版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。

Git是目前最先进的分布式版本控制系统。

maven:jar包管理工具

版本管理工具:Git、Svn

2、Git & SVN对比

SVN版本集中管理,所有的代码都在一台服务器上;集中式,所有个体必须连接到中央仓库才能操作

Git去中心化,每个服务器都有一个完整的代码库;分布式,将仓库clone到本地,可以本地自己玩,最后推送到中央仓库

3、GitHub/GitLab对比及区别

GitHub

全球最大的面向开源及私有软件项目的托管平台,免费注册并且可以免费托管开源代码。

GitLab

与GitHub类似,也是属于第三方基于Git开发的产品,不同的是:GitLab可以部署在自己的服务器上,代码

数据都是掌握在自己手中,适合公司内部团队开发。

二、Git安装与配置

1、安装Git

  • for Linux ——yum install -y git
  • for Windows ——https://git-scm.com/downloads
  • for Mac ——brew install git

2、配置

1. 注册Git账号  https://github.com
2. 配置sshkey
        生成key:ssh-keygen -t rsa -C " 邮箱地址 "
        cd ~/.ssh(用户目录下的 .ssh 文件夹)
        复制id_rsa.pub 的公钥内容到 github 网站上
3. 测试ssh链接GitHub
        ssh -T git@github.com
4. 配置邮箱和用户名
        git config --global user.email " "
        git config --global user.name “”
5. 检查设置是否正确
        git config -l

三、Git使用

1、常用命令

克隆 :git clone 远程仓库地址
查看未被追踪的文件(相当于查看暂存区的文件) :git status
追踪文件 :git add 某个文件  或者   . 点表示未追踪的所有文件
提交文件 :git commit -m “注释”
推送到远程 :git push
删除 :git rm 文件
查看本地所有分支 :git branch
查看所有的本地及远程分支 :git branch -a
创建分支 :git checkout -b 分支名
将分支推送到远程(第一次) :git push --set-upstream origin 分支名
切换分支 :git checkout 分支名
合并分支 :git merge 分支名
删除本地分支 :git branch -d 本地分支名
删除远程分支 :git push origin --delete 分支名
拉取远程分支 :git fetch origin 分支名  
查看所有操作的版本号 :git reflog
版本回退操作:
git reset --hard 版本号 回退到指定版本
git reset --hard HEAD^ 回退到上一个版本

2、Git与IDEA集成使用

  1. IDEA关联Git客户端
  2. IDEA中克隆仓库
  3. IDEA提交代码
情况一、 已经存在git仓库,拉取到本地去使用

File->New->Project from version control->填入git仓库的地址

情况二、 让已经存在的项目提交到远程Git服务器

(本地已存在代码,想要推送到Git仓库里面,但是Git服务器没有这个仓库)

方式1  命令操作

前提:在远程Git服务器存在对应的仓库git@github.com:XXX.git——手动创建

1、本地项目和远程的git仓库绑定

git remote add origin git@github.com:XXX.git

2、追踪本地所有的代码 —— git add *

3、提交 —— git commit -m "XXXX"

4、推送 —— git push -u origin master

方式2  idea手动操作——没有创建远程仓库,直接上传项目时候设置

1、Git/Gitee - share project on GitHub/Gitee——这一句相当于【创建远程仓库】 + 【本地项目和远程仓库绑定】的命令

2、填写仓库名 远程分支

3、添加上传内容 填写commit

4、成功提示

3、常见问题

如果出现错误: Failed to create Gitee Repository: remote origin already exists.错误(翻译:远程来源已经存在。)

解决方法如下:

1、查看本地库是否关联了origin的远程库    git remote -v

图中可以看到,本地库已经关联了origin的远程库,并且,该远程库指向Gitee。

2、删除关联的origin的远程库     git remote rm origin

3、再次输入关联远程库命令    git remote add origin git@github.com:(github名)/(git项目名).git

4、分支合并发布流程

git add .			# 将所有新增、修改或删除的文件添加到暂存区
git commit -m "版本发布" # 将暂存区的文件发版
git status 			# 查看是否还有文件没有发布上去
git checkout test	# 切换到要合并的分支
git pull			# 在test 分支上拉取最新代码,避免冲突
git merge dev   	# 在test 分支上合并 dev 分支上的代码
git push			# 上传test分支代码

便于理解记忆,大致流程图

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

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

相关文章

VUE项目目录与运行流程(VScode)

各目录对应名称含义 main.js(导入App.vue,基于App.vue创建结构渲染index.html) //核心作用:导入App.vue,基于App.vue创建结构渲染index.html//1.导入Vue核心包 import Vue from vue//2.导入App.vue根组件 import App f…

QT开发低功耗蓝牙BLE连接ECB02模块进行数据收发

时间记录:2024/1/22 一、注意点 (1)pro文件中引入bluetooth模块 (2)安卓端运行时需要同步打开定位功能才能扫描到蓝牙设备 (3)mingw套件不能在Windows上运行,需要使用MSVC套件编译…

UE5 C++学习笔记 FString FName FText相互转换

1.FString 是UE里的String。最接近std::string, 唯一可以修改的字符串类型。性能更低 TEXT(string) TEXT宏,作用是将字符串转换成Unicode,切记UE中使用字符串输出要使用该宏 2. FName 是UE里特有的类型。它更注重于表示名称不区分大小写,不…

c++学习第十一讲---文件操作

文件操作&#xff1a; c中对文件操作需要包含头文件 < fstream > 文本文件&#xff1a;以ASCII码形式储存 二进制文件&#xff1a;以二进制文件储存&#xff08;读不懂&#xff09; 操作文件三大类&#xff1a; 读&#xff1a;ifstream ; 写&#xff1a;ofstream ; 读…

旅游网站day13

1. 完善首页 1.1 首页banner查询接口 1.2 搜索服务 集成ES 1. 方式1&#xff1a;数据独立存储与独立搜索 2. 方式2&#xff1a;条件搜索与主键查询为搜索模块搭建一个服务 为什么需要api? 因为搜索也需要模型对象。 导入es依赖&#xff1a; 搜索api&#xff1a; ES工具类…

《WebKit 技术内幕》学习之十(1): 插件与JavaScript扩展

虽然目前的浏览器的功能很强 &#xff0c;但仍然有其局限性。早期的浏览器能力十分有限&#xff0c;Web前端开发者希望能够通过一定的机制来扩展浏览器的能力。早期的方法就是插件机制&#xff0c;现在流行次啊用混合编程&#xff08;Hybird Programming&#xff09;模式。插件…

transformer优化(二)-DETR 学习笔记

论文地址&#xff1a;https://arxiv.org/pdf/2005.12872.pdf 代码地址&#xff1a;https://github.com/bubbliiiing/detr-pytorch https://github.com/facebookresearch/detr 1.是什么&#xff1f; DETR&#xff08;Detection Transformer&#xff09;是一种基于Transforme…

rocketmq4.9.4有bug,生产勿用

周一早上,领导发来消息:xxxx用户:您有服务器因攻击被限制访问部分目的端口&#xff0c;详细信息请看https 排查了服务器上的异常进程后,与阿里云沟通得知,被人利用rocketmq的漏洞攻击了 服务器中毒的原因 您服务器中运行的 rocketmq 是 4.9.4 版本&#xff0c;该版本存在远程…

【.NET Core】多线程之线程池(ThreadPool)详解(一)

【.NET Core】多线程之线程池&#xff08;ThreadPool&#xff09;详解&#xff08;一&#xff09; 文章目录 【.NET Core】多线程之线程池&#xff08;ThreadPool&#xff09;详解&#xff08;一&#xff09;一、概述二、线程池的应用范围三、线程池特性3.1 线程池线程中的异常…

旅游项目day14

其他模块数据初始化 搜索实现 请求一样&#xff0c;但是参数不一样&#xff0c;根据type划分。 后台需要提供一个搜索接口。 请求分发器&#xff1a; 全部搜索 目的地搜索 精确搜索、无高亮展示 攻略搜索 全文搜索、高亮显示、分页 游记搜搜 用户搜索 丝袜哥

Python实现Lasso回归模型

• Tibshirani(1996)提出了Lasso(The Least Absolute Shrinkage and Selectionator operator)算法。 • 通过构造一个一阶惩罚函数获得一个精炼的模型&#xff1b;通过最终确定一些指标&#xff08;变量&#xff09;的系数为零&#xff08;岭回归估计系数等于0的机会微乎其微&a…

Mysql--创建数据库(1)

我们可以在登陆 MySQL 服务后&#xff0c;使用 create 命令创建数据库&#xff0c;语法如下: CREATE DATABASE 数据库名;以下命令简单的演示了创建数据库的过程&#xff0c;数据名为 R OB: [roothost]# mysql -u root -p Enter password:****** # 登录后进入终端mysql>…

什么是美颜SDK:解密视频美颜SDK背后的图像处理算法

美颜SDK是一种集成到应用程序中的工具包&#xff0c;能够通过图像处理算法实时改善或修改用户的面部外观。在本文中&#xff0c;我们将深入探讨美颜SDK的基本概念&#xff0c;并解密其背后的图像处理算法。 一、美颜SDK的基本概念 美颜SDK的应用范围广泛&#xff0c;涵盖了视…

《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第1章 统计学习方法概论

文章目录 第1章 统计学习方法概论1.1 统计学习1&#xff0e;统计学习的特点2&#xff0e;统计学习的对象3&#xff0e;统计学习的目的4&#xff0e;统计学习的方法1.2.1 基本概念1.2.2 问题的形式化 1.3 统计学习三要素1.3.1 模型1.3.2 策略1.3.3 算法 1.4 模型评估与模型选择1…

助力焊接场景下自动化缺陷检测识别,基于YOLOv8【n/s/m/l/x】全系列参数模型开发构建工件表面焊接裂纹缺陷检测识别分析系统

焊接是一个不陌生但是对于开发来说相对小众的场景&#xff0c;在工件表面焊接场景下常常有对工件表面缺陷智能自动化检测识别的需求&#xff0c;工业AI结合落地是一个比较有潜力的场景&#xff0c;在我们前面的博文开发实践中也有一些相关的实践&#xff0c;感兴趣的话可以自行…

SpringBoot3.1.7集成Kafka和Kafka安装

一、背景 我们在很多系统开发都需要用到消息中间件&#xff0c;目前来说Kafka凭借其优秀的性能&#xff0c;使得它的使用率已经是名列前茅了&#xff0c;所以今天我们将它应用到我们的系统 二、版本选择 在使用一个中间件一定要考虑版本的兼容性&#xff0c;否则后面会遇到很…

搜索与图论第五期 拓扑序列

前言 拓扑排序是非常重要的一部分&#xff0c;希望大家都能够手撕代码&#xff01;&#xff01;&#xff01;&#xff08;嘿嘿嘿&#xff09; 一、拓扑排序定义&#xff08;百度须知嘿嘿嘿&#xff09; 拓扑排序 拓扑排序是一种对有向无环图&#xff08;Directed Acyclic Gra…

开始学习vue2基础篇(指令)

一、 内容渲染指令 > {{}} 模板渲染&#xff08;模板引擎&#xff09; 1. {{数据绑定}} 2. {{简单计算}} 3. {{简单逻辑运算}}&#xff08;三元运算&#xff09; 4. {{做简单 js 判断}} 注意&#xff1a;不能写语句、不能解析 html 渲染、不能放在在属性身上 > v-…

菜鸟导入导出assetbundle

因为菜鸟不会用unity c#什么的&#xff0c;所以最后参考贴吧的方法用的是UABE(Unity Assets Bundle Extractor)和UABEA(Unity Assets Bundle Extractor Avalonia) 可以去github上下载 对于txt、xml什么的可以直接改&#xff0c;但是byte文件里还是会有一些类似乱码的东西&…

算法通关村番外篇-面试150题一

大家好我是苏麟 , 今天开始LeetCode面试经典150题 . 大纲 26. 删除有序数组中的重复项80. 删除有序数组中的重复项 II 26. 删除有序数组中的重复项 描述 : 给你一个 非严格递增排列 的数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使每个元素 只出现一次 …