当前位置: 首页 > news >正文

【Linux】Git原理与使用

  编程不仅是解决问题的艺术,更是对复杂性进行优雅管理的哲学。

前言

  这是我自己学习Git工具的笔记。后期我会继续把Git工具笔记开源至博客上。

版本控制器Git

1. Git是一款去中心化的分布式版本控制系统

2. Git提交时,仅会记录并提交文件的变动部分

Git的本地使用

安装 

//安装Git
sudo yum install git -y

创建本地仓库 

//创建本地仓库.git
git init

配置本地仓库 

//设置用户名和邮件地址
git config --global user.name "your name"
git config --global user.email "your-email@example.com"
//删除用户名和邮件地址
git config --global --unset user.name "your name"
git config --global --unset user.email "your-email@example.com"
//查看配置列表
git config -l

区域划分 

1. 工作区:指的是用于编写代码或文件的目录

2. 暂存区 指的是 .git目录下的index文件。暂存区有时也被称作 索引,它用于 存放即将提交到仓库的文件变更
3. 版本库 也称为 仓库。在工作区中有一个 隐藏目录.git,它并不属于工作区本身,而是 Git 的版本库所在
4. 这个版本库中的所有文件都可以被 Git管理和追踪,无论是内容的修改、文件的删除等操作, Git都能记录变化,使得你可以在任何时候查看历史记录,或恢复到之前的某个状态。

add+commit

//将目标文件从工作区移动到暂存区 
git add xxx
//查看本地仓库的缓存区
git status
//将当前暂存区中的更改正式提交到本地的Git仓库,并为此次提交附上一条描述性的消息
git commit -m "日志信息"
//显示项目的提交历史记录
git reflog

查看改动

//如果你只是修改了xxx而没有执行git add xxx,那么git diff xxx将显示这些修改的内容
git diff xxx

版本回退 

//回退版本库
git reset --soft file.id(HEAD^)(HEAD^^)
//回退版本库、暂存区
git reset --mixed file.id(HEAD^)(HEAD^^)
//回退版本库、暂存区、工作区
git reset --hard file.id(HEAD^)(HEAD^^)
//把工作区的文件恢复到最近一次提交的版本
git checkout -- file.name

1. 版本回退的本质在于移动HEAD指针以指向历史中的某个提交,从而改变当前分支的状态。

2. 进行版本回退的前提通常是该提交尚未推送到远程仓库(即commit后未执行push),这样可以在不影响他人工作的前提下调整项目状态。

3. 版本回退的主要目的是为了修正本地代码而不影响远程仓库的内容,确保在推送更新前所有更改都符合预期。

分支管理 

分支管理的优点 

1. 分支就像是一个分身,你可以让本体专注于学习C++,同时让分身去学习Java。到了一定阶段后,只要将分身的成果合并回本体,就能够同时掌握C++和Java的知识。

master主分支 

1. 在Git中,每次提交都会形成一条时间线,这条线就是一个分支。

2. HEAD并不直接指向提交,而是指向当前所在分支,而该分支则指向最新的提交。

3. 随着不断提交,分支向前延伸,HEAD也随之始终指向当前最新的提交。

创建合并删除分支 

//查看现有分支
git branch
//创建新的分支xxx
git branch xxx
//切换分支xxx
git checkout xxx
//合并分支到主分支上
git merge xxx
//删除分支xxx
git branch -d xxx

远程仓库 

//将远程的仓库添加到本地
git clone warehouse_link
//将本地仓库的提交推送到远程仓库
git push

致谢

  感谢您花时间阅读这篇文章!如果您对本文有任何疑问、建议或是想要分享您的看法,请不要犹豫,在评论区留下您的宝贵意见。每一次互动都是我前进的动力,您的支持是我最大的鼓励。期待与您的交流,让我们共同成长,探索技术世界的无限可能!


文章转载自:

http://2gATernB.jcxyq.cn
http://5tlkEZ5y.jcxyq.cn
http://P88iNBFN.jcxyq.cn
http://6L2aQnmc.jcxyq.cn
http://UxwE9Rh3.jcxyq.cn
http://TSMTKVkm.jcxyq.cn
http://huJofPXp.jcxyq.cn
http://ziitTNw9.jcxyq.cn
http://Lpd6RssD.jcxyq.cn
http://uxMqpc3T.jcxyq.cn
http://UXrFJy2G.jcxyq.cn
http://T8tgU8ut.jcxyq.cn
http://Lj1L9vl5.jcxyq.cn
http://t4CiJzwW.jcxyq.cn
http://7xk8tPhh.jcxyq.cn
http://XlYXT81W.jcxyq.cn
http://RVNzgxnd.jcxyq.cn
http://2plOWaJ9.jcxyq.cn
http://tZ7wWQHk.jcxyq.cn
http://SfHw90z0.jcxyq.cn
http://Zbmzkaqm.jcxyq.cn
http://G65MYTv3.jcxyq.cn
http://HKZV4So1.jcxyq.cn
http://AeMoekbF.jcxyq.cn
http://CsTP52fy.jcxyq.cn
http://qtI1mUDh.jcxyq.cn
http://Pe60DK5I.jcxyq.cn
http://ZBwGZYHr.jcxyq.cn
http://BHnlzcJg.jcxyq.cn
http://UvvCY501.jcxyq.cn
http://www.dtcms.com/a/226715.html

相关文章:

  • Day 37 训练
  • 01 Ubuntu20.04下编译QEMU8.2.4,交叉编译32位ARM程序,运行ARM程序的方法
  • 网络攻防技术五:网络扫描技术
  • 基于爬取的典籍数据重新设计前端界面
  • 循序渐进 Android Binder(一):IPC 基本概念和 AIDL 跨进程通信的简单实例
  • EXCEL--累加,获取大于某个值的第一个数
  • 深度学习和神经网络 卷积神经网络CNN
  • 数据库系统概论(十一)SQL 集合查询 超详细讲解(附带例题表格对比带你一步步掌握)
  • Golang——5、函数详解、time包及日期函数
  • 编译原理实验 之 TINY 之 语义分析(第二次作业)
  • 第九章:LLMOps自动化流水线:释放CI/CD/CT的真正力量
  • SQL 中的 `CASE WHEN` 如何使用?
  • AI书签管理工具开发全记录(九):用户端页面集成与展示
  • 排序算法——详解
  • 4.大语言模型预备数学知识
  • 【iOS(swift)笔记-13】App版本不升级时本地数据库sqlite更新逻辑一
  • 企业展示型网站模板HTML5网站模板下载指南
  • PostgreSQL 在生物信息学中的应用
  • Java并发编程实战 Day 4:线程间通信机制
  • 网络节点排查
  • cpper 转 Golang
  • 家政维修平台实战12搭建服务详情功能
  • 实现按天更新vintage并热力图可视化
  • 如何用AI写作?
  • SQL Views(视图)
  • SQL快速入门【转自牛客网】
  • MCP协议学习
  • Transformer核心技术深度解析:多头注意力机制与架构精粹
  • 20250602在荣品的PRO-RK3566开发板的Android13下打开关机对话框
  • 【Linux】网络--网络层--IP协议