Git进行版本控制操作流程

news2024/12/23 9:07:52

目录

一、初始化仓库

操作流程 

二、添加到缓存区

三、提交到版本库

四、推送至远程仓库

生成SSH密钥

将本地库中内容推送至已经创建好的远程库

推送

推送错误

第一种:

五、克隆

克隆整个项目

拉去最新代码

六、分支

1. 初始化仓库或克隆远端仓库

2. 检查当前分支

3. 修改代码

4. 添加文件到暂存区

5. 提交改动

6. 同步远端仓库

7. 推送本地提交到远端仓库

8. 查看远端推送是否成功

七、查看提交历史

八、删库

七、版本退回

1. 查看提交历史,找到目标提交

2. 回退本地仓库到指定提交

3. 强制同步远端仓库

4. 确认远端回退成功

5. 备份当前状态(可选)


一、初始化仓库

这里新建一个文件夹作为工作空间来对我们的代码进行管理

文件夹右键打开Git

然后我们输入git init初始化仓库,出现.git说明初始化成功

操作流程 

这里看一下Git的基本操作流程

 

它是在本地进行创建或者修改后,需要先上传到缓存区,然后在缓存区操作上传到本地Git,最后在本地Git上上传到远程仓库 

二、添加到缓存区

可以先新建一个dice.txt,随便写点东西,作为演示

将该目录下的所有文件传到缓存区:git add . (. 代表当前目录下的所有文件,如果要上传单个文件就在add后面跟文件名:git add dice.txt)

三、提交到版本库

提交命令

git commit -m "这里是备注,比如修改了什么或者增加了什么"

这里我么完成了提交到本地版本库的操作了

四、推送至远程仓库

若想将本地库推送至远程库,初次需要配置验证信息(本地Git库和远程仓库,比如GitHub,Gitee都是SSH加密传输的)

生成SSH密钥

输入:ssh-keygen - t rsa -C "邮箱地址"

我们找到这个东西,把里面的所有东西复制下来,然后打开Gitee,添加公钥即可

将本地库中内容推送至已经创建好的远程库

这里我的远程库地址是这个,复制下来

推送

我们复制自己的仓库地址

输入:git remote add  库名称 远程库地址

然后输入:git push -u gitee master

-u是表示无需每次都输入密码

gitee 这是库名,随意都行,注意不要库名重复

(首次推送需要输入gitee的账号密码)

这样我们就推送完成了,在远程仓库就能够看见我们项目

推送错误

在工作中会出现一种情况,有人直接在远程库中更改了某些东西,然后你这边不知道,你也更新了一些东西上传到远程库,这时候会报错,提示无法上传

这时候有两种解决办法,这里详细说一种

第一种:

我们先把远程库的东西先pull下来到本地

 git pull 地址 这是拉去最新代码

然后我们打开文件会发现从远程仓库pull下来的东西跟你要上传的东西合并了,我们看到里面的内容有很多符号,比如 <<<<< ======= >>>>>>>这种的,我们直接把有这些的行全部删除了保存,再进行上传

发现就不会报错了

五、克隆

我们要从远程仓库拿把东西拿下来就要克隆

克隆整个项目

git clone 项目地址

拉去最新代码

git pull 项目地址

六、分支

我们要更新东西要先创建分支,然后合并到主分支中,最后上传到远程仓库

1. 初始化仓库或克隆远端仓库

如果你已经有一个远端仓库,可以直接克隆下来:

git clone <repository-url>

如果你还没有仓库,可以初始化一个新的 Git 仓库:

git init

2. 检查当前分支

确保你在正确的分支上工作。如果你想在某个分支上工作,可以使用以下命令切换分支:

git checkout <branch-name>

或者创建并切换到新分支:

git checkout -b <new-branch-name>

3. 修改代码

编辑代码,进行你需要的更改。之后你可以通过以下命令检查本地修改:

git status

4. 添加文件到暂存区

将你修改的文件添加到暂存区。你可以单独添加文件,也可以一次性添加所有文件:

添加单个文件:

git add <file-name>

添加所有修改的文件:

git add .

5. 提交改动

使用 git commit 提交改动。每次提交都需要附加一条有意义的提交信息。提交信息帮助其他开发者或自己以后回顾代码时,理解为什么要进行这个改动。

git commit -m "Your commit message"

6. 同步远端仓库

在推送前,建议你拉取(pull)最新的远端更新,确保你本地代码是最新的,避免冲突。

git pull origin <branch-name>

如果远端仓库没有更新,也不会影响你的代码。

7. 推送本地提交到远端仓库

将你的本地提交推送到远端仓库。假设你推送到 main 分支:

git push origin main

如果你在新的分支上工作,推送时需要指定分支:

git push origin <new-branch-name>

8. 查看远端推送是否成功

可以在 Gitee上查看你的代码是否成功推送,也可以通过 git log 命令查看本地与远端是否同步。

git log

七、查看提交历史

查看历史提交记录

git log 

八、删库

我们可以删除本地库

rm -rf ./.git

再回到文件夹中发现 .git 这个文件没有了,说明删库成功

七、版本退回

1. 查看提交历史,找到目标提交

使用 git log 查看提交历史,找到你想回退到的目标提交哈希(commit hash)。你可以通过命令:

git log

找到提交历史。它会显示每个提交的哈希值、作者、日期和提交信息。

2. 回退本地仓库到指定提交

使用 git reset --hard 将你的本地仓库回退到目标提交。假设你要回退到的提交哈希是 abc123

如果想要直接退回上版本就用

git reset --hard^

一个^表示回退一个版本,两个就是两个版本

如果想要退回100个版本就使用

git reset --hard~100

log查看版本号则运行:

git reset --hard abc123

这会强制将本地仓库的所有文件恢复到该提交的状态,注意:此操作会丢失本地未提交的改动。

3. 强制同步远端仓库

由于远端仓库可能已经有了更新记录,直接推送会被拒绝。因此你需要使用 --force 强制将本地的版本推送到远端。确保你知道你在做什么,因为这会覆盖远端的历史记录。

git push origin <branch-name> --force

<branch-name> 替换为你想要回退的分支名称(如 main 或 master)。

4. 确认远端回退成功

推送完成后,可以通过在远端查看提交历史来确认操作是否成功

git fetch origin

git log

5. 备份当前状态(可选)

回退之前,建议你创建一个分支来保存当前的状态,避免万一回退后出现问题时无法恢复:

git branch backup-branch

这会创建一个名为 backup-branch 的分支,保存你回退前的所有提交历史

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

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

相关文章

新赚米渠道,天工AI之天工宝典!

新赚米渠道&#xff0c;天工AI之天工宝典&#xff01; 引言 随着人工智能和数字创作工具的发展&#xff0c;内容创作的门槛不断降低&#xff0c;为普通用户提供了更多的赚钱机会。在这样的背景下&#xff0c;天工AI应运而生&#xff0c;凭借其强大的创作能力和最新更新的“天…

「Ubuntu」文件权限说明(drwxr-xr-x)

我们在使用Ubuntu 查看文件信息时&#xff0c;常常使用 ll 命令查看&#xff0c;但是输出的详细信息有些复杂&#xff0c;特别是 类似与 drwxr-xr-x 的字符串&#xff0c;在此进行详细解释下 属主&#xff1a;所属用户 属组&#xff1a;文件所属组别 drwxr-xr-x 7 apps root 4…

MySql 之 Binglog 复制

复制是一种将数据从一个 MySQL 数据库服务器异步复制到另一个的技术。使用 MySQL 复制选项&#xff0c;您可以复制所有数据库、选定的数据库甚至选定的表&#xff0c;具体取决于您的使用情况。 前提条件 确保在源服务器上启用了二进制日志记录。确保复制配置中的所有服务器都有…

《云原生安全攻防》-- K8s攻击案例:从Pod容器逃逸到K8s权限提升

在本节课程中&#xff0c;我们将介绍一个完整K8s攻击链路的案例&#xff0c;其中包括了从web入侵到容器逃逸&#xff0c;再到K8s权限提升的过程。通过以攻击者的视角&#xff0c;可以更全面地了解K8s环境中常见的攻击技术。 在这个课程中&#xff0c;我们将学习以下内容&#…

使用 Go 和 Gin 框架构建简单的用户和物品管理 Web 服务

使用 Go 和 Gin 框架构建简单的用户和物品管理 Web 服务 在本项目中&#xff0c;我们使用 Go 语言和 Gin 框架构建了一个简单的 Web 服务&#xff0c;能够管理用户和物品的信息。该服务实现了两个主要接口&#xff1a;根据用户 ID 获取用户名称&#xff0c;以及根据物品 ID 获…

spring boot itext7的生成一个pdf(hello,world),并且相关一些简单的使用方法及相关说明

1、我们经常会碰到生成Pdf的场景&#xff0c;比如说有很多题目&#xff0c;又比如说来个质检的报告&#xff0c;我们都需要导出为pdf&#xff0c;那这种情况有二种方法&#xff0c;一种是通过报表来实现&#xff0c;一种就是通过itext来生成。一般我们会通过报表来直接导出pdf。…

Liquid AI与液态神经网络:超越Transformer的大模型架构探索

1. 引言 自2017年谷歌发表了开创性的论文《Attention Is All You Need》以来&#xff0c;基于Transformer架构的模型迅速成为深度学习领域的主流选择。然而&#xff0c;随着技术的发展&#xff0c;挑战Transformer主导地位的呼声也逐渐高涨。最近&#xff0c;由麻省理工学院(M…

简述何为多态

1.多态的概念 多态是什么?首先我们从概念讲起,简单来讲,多态就是多种形态,当你要去完成同一件事情的时候,不同的人去完成这件事情会有不同的结果. 比如在买票的时候,如果是成人去买票,则会买到成人票;如果是学生,则会买到学生票. 2.多态的实现以及构成条件 首先,多态的实现…

【Flutter、Web——前端个人总结】分享从业经历经验、自我规范准则,纯干货

前言 hi&#xff0c;正式接触web前端已经经过了两年的时间&#xff0c;从大学的java后端转型到web前端&#xff0c;再到后续转战Flutter&#xff0c;逐渐对前端有了一些心得体会&#xff0c;其实在当下前端的呈现形式一直在变化&#xff0c;无论你是用原生、还是web还是混编的…

Django 1.2标准日志模块出现奇怪行为时的解决方案

在 Django 1.2 中&#xff0c;标准日志模块有时会出现意想不到的行为&#xff0c;例如日志消息未按预期记录、日志级别未正确应用或日志格式错乱等。这些问题可能源于日志配置不当、日志模块被多次初始化、或日志模块被其他包覆盖等原因。下面是一些常见问题的排查方法和解决方…

力扣21~25题

21题&#xff08;简单&#xff09;&#xff1a; 分析&#xff1a; 按要求照做就好了&#xff0c;这种链表基本操作适合用c写&#xff0c;python用起来真的很奇怪 python代码&#xff1a; # Definition for singly-linked list. # class ListNode: # def __init__(self, v…

二、MySQL的数据目录

文章目录 1. MySQL8的主要目录结构1.1 数据库文件的存放路径1.2 相关命令目录1.3 配置文件目录 2. 数据库和文件系统的关系2.1 查看默认数据库2.2 数据库在文件系统中的表示2.3 表在文件系统中的表示2.3.1 InnoDB存储引擎模式2.3.2 MyISAM存储引擎模式 2.4 小结 1. MySQL8的主要…

宝塔docker中如何修改应用配置文件参数

今天在宝塔docker安装了kkfileview&#xff0c;相修改应用里的application.properties&#xff0c;却找不到在哪&#xff0c;如何修改&#xff1f; 下面教大家应用找文件修改。 docker安装好对应容器后&#xff0c;是这样 在这里是找不到对应修改的地方&#xff0c;其实docker…

Linux WIFI 驱动实验

直接参考【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.81 本文仅作为个人笔记使用&#xff0c;方便进一步记录自己的实践总结。 WIFI 的使用已经很常见了&#xff0c;手机、平板、汽车等等&#xff0c;虽然可以使用有线网络&#xff0c;但是有时候很多设备存在布线困难的情况&…

Windows10的MinGW安装和VS Code配置C/C++编译环境

1. MinGW下载安装 首先需要说明的是VS Code是一个编辑器&#xff0c;而不是编译器。‌ 编辑器和编译器是有很明显的区别 1.1 编辑器和编译器区别 编辑器‌是一种用于编写和编辑文本的应用软件&#xff0c;主要用于编写程序的源代码。编辑器提供基本的文本编辑功能&#xff0c;…

面试题:Redis(三)

1. 面试题 背景 问题&#xff0c;上面业务逻辑你用java代码如何写&#xff1f; 2. 缓存双写一致性谈谈你的理解&#xff1f; 3. 双检加锁策略 多个线程同时去查询数据库的这条数据&#xff0c;那么我们可以在第一个查询数据的请求上使用一个 互斥锁来锁住它。 其他的线程走到这…

内核编译 设备驱动 驱动程序

内核编译 一、内核编译的步骤 编译步骤&#xff1a; (linux 内核源码的顶层目录下操作 ) 1. 拷贝默认配置到 .config cp config_mini2440_td35 .config 2. make menuconfig 内核配置 make menuconfig 3. make uImage make u…

docker-compose无法切换用户

问题描述 jupyter:image: flink:1.19-pyprivileged: trueuser: rootports:- "9999:8888"volumes:- /data/docker_data/jupyter:/workcommand: sh -c "cd / && jupyter notebook --ip 0.0.0.0 --port 8888 --allow-root --NotebookApp.passwordsha1:658…

循环神经网络-LSTM网络

文章目录 前言一、LSTM网络简介二、LSTM的门结构1.遗忘门2.输入门3.输出门 三、总结 前言 循环神经网络&#xff08;Recurrent Neural Networks&#xff0c;RNN&#xff09;是一种特殊的神经网络&#xff0c;具有能够处理序列数据的能力&#xff0c;然而&#xff0c;RNN在处理…

团员申请书怎么写?这里归纳了一些模板

团员申请书怎么写&#xff1f;随着社会的快速发展和时代的进步&#xff0c;越来越多的青年人意识到加入团组织的重要性。作为新时代的青年&#xff0c;我们应当积极响应国家的号召&#xff0c;参与到团组织的建设中来。而想要成为共青团员&#xff0c;首先需要撰写一份规范的团…