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

news2024/9/25 9:40:44

一、前言

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分支代码

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

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

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

相关文章

代码随想录算法训练DAY27|回溯3

算法训练DAY27|回溯3 39. 组合总和 力扣题目链接 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被选取。 说明: 所有数字(包括 …

sell控制脚本案例

1.压缩脚本 写一个脚本,完成如下功能 传递一个参数给脚本,此参数为gzip、bzip2或者xz三者之一; (1) 如果参数1的值为gzip,则使用tar和gzip归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160613.tar.gz&am…

yarn集群datanode无法启动问题排查

一、问题场景 hdfs无法访问,通过jps命令查看进程,发现namenode启动成功,但是所有datanode都没有启动,重启集群(start-dfs.sh)后仍然一样 二、原因分析 先看下启动的日志有无报错。打开Hadoop的日志目录 …

Vue-33、Vue中为什么使用render函数

1、main.js //该文件是整个项目的入口文件 //引入Vue import Vue from vue //引入APP组件,他是所有组件的父组件 import App from ./App.vue //关闭Vue是生产提示 Vue.config.productionTip false; //创建Vue实例对象---vm new Vue({render: h > h(App), }).$m…

【代码随想录算法训练营第二十七天|39. 组合总和、40.组合总和II、131.分割回文串】

代码随想录算法训练营第二十七天|39. 组合总和、40.组合总和II、131.分割回文串 39. 组合总和40.组合总和II131.分割回文串 题解参考y总的:http://www.acwing.com 39. 组合总和 我是一看就会,一写就废。先看代码: class Solution { public:…

第1章-计算机网络基础

目录 1. 计算机网络与计算机 2. 计算机网络的定义和基本功能 2.1. 定义:计算机网络是一组自治计算机互连的集合 2.2. 基本功能 2.3. 计算机网络的演进 2.4. 广域网(Wide Area Network,WAN) 2.5. 网络的拓扑结构 2.6. 数据交换方式 2.7. 衡量计算…

R语言中数据框是什么?

在数据分析过程中离不开表格,通常使用Excel来做数据分析,行和列用来存放不同的数据,表格能清晰直观的展示数据,而且可以将多张表组合联系起来,这种不约而同的规范也同样适用于R语言。 R语言中的数据框(Data…

C#winform上位机开发学习笔记7-串口助手的波特率参数设置功能添加

1.功能描述 上位机与下位机进行通讯时需要用到波特率设置功能,以及尝试与下位机实体进行通讯。 2.代码部分 步骤1:串口开启按钮事件中添加代码 serialPort1.BaudRate Convert.ToInt32(comboBox14.Text, 10);//将十进制的文本转换为32位整型赋值给串…

计算机网络-OSI参考模型(来由 通信过程 各层分析)

文章目录 总览OSI模型怎么来的?OSI参考模型OSI参考模型解释通信过程各层分析应用层表示层会话层传输层网络层数据链路层物理层 小结 总览 两种网络分层结构 结合事实标准和法定标准得到一个中和版本5层的体系结构 OSI模型怎么来的? 刚开始各个公司的…

图像处理之《用于统一源跟踪和深度伪造检测的深度可分离水印SepMark》论文精读

一、文章摘要 恶意的Deepfakes导致了一场关于区分真脸和伪造脸的激烈冲突。尽管已经制定了许多事后检测Deepfakes的对策,但毫无疑问,在可预见的操作之前,被动取证没有考虑对原始人脸采取任何预防措施。为了完成这个取证生态系统,…

Git Docker 学习笔记

注意:该文章摘抄之百度,仅当做学习笔记供小白使用,若侵权请联系删除! 目录 列举工作中常用的几个git命令? 提交时发生冲突,你能解释冲突是如何产生的吗?你是如何解决的? git的4个…

【VUE】如何有效管理重复请求

【VUE】如何管理重复请求 需求 重复的HTTP请求可能对应用程序性能造成很大影响,尤其是在用户快速点击或多次触发同一操作时。在Vue应用中,我们可以使用axios的请求拦截器(interceptors)配合AbortController来取消重复的HTTP请求…

【漏洞复现】CloudPanel makefile接口远程命令执行漏洞(CVE-2023-35885)

文章目录 前言声明一、CloudPanel 简介二、漏洞描述三、影响版本四、漏洞复现五、修复建议 前言 CloudPanel 是一个基于 Web 的控制面板或管理界面,旨在简化云托管环境的管理。它提供了一个集中式平台,用于管理云基础架构的各个方面,包括 &a…

【开源】基于JAVA语言的新能源电池回收系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户档案模块2.2 电池品类模块2.3 回收机构模块2.4 电池订单模块2.5 客服咨询模块 三、系统设计3.1 用例设计3.2 业务流程设计3.3 E-R 图设计 四、系统展示五、核心代码5.1 增改电池类型5.2 查询电池品类5.3 查询电池回…

k8s集群异常恢复

前提、我自己的k8s采用的是单master节点两个从节点部署,我针对单master情况进行恢复说明 场景一:正常开关虚拟机,可直接重启kubelet进行恢复 1、1、一般重启后三个节点都需要检查,输入命令检查kubelet: systemctl s…

计算机网络-TCP/IP模型及五层参考模型(OSI与TCP/IP相同点 不同点 5层参考模型及数据封装与解封装)

文章目录 OSI与TCP/IPOSI与TCP/IP相同点OSI与TCP/IP不同点5层参考模型5层参考模型的数据封装与解封装小结 OSI与TCP/IP OSI:先理论,但没有实践 TCP/IP:先实践,再理论 TCP/IP:基于协议栈而分层 网络接口层:…

IDEA 2023.3.2 安装教程

1.下载2023.3.2版本IDEA 链接:https://pan.baidu.com/s/1RkXBLz6qxsd8VxXuvXCEMA?pwd5im6 提取码:5im6 2.安装 3.解压文件,进入,选择方式3 4.将下面文件夹复制到任意位置(不要有中文路径) 5.进入下面文…

CmakeList教程

一、CmakeList介绍: cmake 是一个跨平台、开源的构建系统。它是一个集软件构建、测试、打包于一身的软件。它使用与平台和编译器独立的配置文件来对软件编译过程进行控制。它会通过写的语句自动生成一个MakeFile,从而实现高效编译 二、CmakeList的常用指令 1.指定…

DevOps系列文章之 GitLab Runner

Runner Runner就像一个个的工人,而Gitlab-CI就是这些工人的一个管理中心,所有工人都要在Gitlab-CI里面登记注册,并且表明自己是为哪个工程服务的。当相应的工程发生变化时,Gitlab-CI就会通知相应的工人执行软件集成脚本。如下图所…

优维全面可观测产品能力分解①:架构可观测

2023年,基于客户需求的洞察,历经1年的潜心优化,优维在第四季度推出集大成产品——「全面可观测解决方案」,涵盖架构可观测、故障可观测、变更可观测、用户可观测、应用服可观测、资源可观测、运维状态可观测等不同场景的可观测能力…