分布式版本控制工具 git

git 是什么

  • 分布式版本控制工具
  • github 是代码托管平台。

git 有什么用

  • 保存文件的所有修改记录。
  • 使用版本号(sha1 哈希值) 进行区分。
  • 随时可浏览历史版本记录。
  • 可还原到历史指定版本。
  • 对比不同版本的文件差异。

为什么要使用 git

  • 多人协作开发一个大型项目。
  • 每个人都在代码库下载代码,然后进行修改,把大家不同版本的代码合在一起上传到平台。
  • 公司都会有自己的代码托管平台。

git 基本概念

  • 仓库:
    • 远程仓库:git init --bare 创建一个裸仓库。
    • 本地仓库:git clone ... 克隆远程仓库到本地。
  • 协议:
    • http / https
    • ssh
      • ssh 协议是一个验证授权的网络协议。
      • 使用 ssh 公钥登录 git 服务器。
        • 生成公钥和私钥ssh-keygen -t rsa
        • 安装 openssh server(可省略)。
        • 复制公钥内容到远端服务器 .ssh/authorized_keys
        • git clone ssh://root@123.249.112.139:/root/holo_render/remote_storage
  • 配置用户名和邮箱:
    • 局部配置:
      git config user.name zcoder
      git config user.email zcoder@163.com
      
    • 全局配置:
      git config --global user.name zcoder
      git config --global user.email zcoder@163.com
      
  • 版本号:40sha1 哈希值。
  • head:当前检出记录的符号引用。

请添加图片描述


git 基本操作

  • 暂存:git add
  • 提交:git commit
  • 推送:git push
  • 拉取:git fetch将远程仓库所包含分支的最新 commit-id 记录到本地文件
  • 拉取合并:git pullgit fetch + git merge
  • 查看状态:git status
  • 查看历史:git log

git 逆向操作

  • 暂存区 → 本地工作区:git restore -S
  • 本地仓库 → 暂存区:git reset --soft
  • 本地仓库 → 本地工作区:git reset --mixed
  • 本地仓库 → nullgit reset --hard

git 本地仓库整理操作

  • 整理上一次提交:git commit --amend → 相同功能多次提交复用上次提交信息。
  • 整理多次提交:git rebase -i hash1 hash2(左开右关)。
  • 只在私有仓库,也就是在 develop 分支上使用,因为提交的 commit-id 会发生变化。

git 分支操作

  • 查看分支:git branch
  • 创建分支:
    • git branch develop → 创建
    • git switch develop → 切换
    • git checkout -b develop → 创建并切换。
  • 删除分支:git branch -d develop
  • 合并分支:
    • 切换到本地 master 分支,拉取远程仓库 master 最新数据。
      git switch master
      git pull
      
    • 切换到 develop 分支,把本地 master 合并到 develop
      git switch develop
      git merge master 
      
    • 如果有冲突要解决冲突,测试代码,没问题的话就提交。
      vi api.hpp
      git add .
      git commit -m "fix:merge master"
      
    • 切换到本地 master 分支,把 develop 合并到本地 master,最后提交到远程仓库。
      git switch master
      git merge develop
      git push origin master
      

git 解决冲突

  • 冲突产生原因:不同分支修改了同一文件的同一行或者相邻行
  • 解决原则:
    • 不要影响其他人提交的功能,也不能破坏自己提交的功能。
    • 协商解决。
  • 解决方式:git merge
  • 建议:提交前先 git pull 拉取最新代码。

请添加图片描述


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

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

相关文章

SQL 优化

SQL 优化是指通过各种手段提高 SQL 查询的执行效率,减少资源消耗,提高数据库的整体性能。以下是一些详细的 SQL 优化方法,包括索引优化、查询优化、数据库设计优化等。 1. 索引优化 创建适当的索引: 单列索引:在查询中频繁使用的单个列上创建索引。多列索引(复合索引):…

STM32手写超频到128M函数

今天学习了野火的STM32教程学会了如何设置STM32的时钟频率,步骤比较详细,也很容易理解,就是视频教程不能跳着看,只能一节节的看,不然会知识不连贯,造成有些知识不理解,连续着看还是没有什么难度…

docker-file 网络

docker挂载 1.绑定挂载(Bind Mounts):绑定挂载是将主机上的文件或目录挂载到容器中。 docker run -v /host/path:/container/path image_name 2.卷挂载(Volume Mounts):卷挂载将 Docker 数据卷挂载到容器中…

【CTF Web】CTFShow web4 Writeup(SQL注入+PHP+字符型注入)

web4 1 管理员阿呆又失败了&#xff0c;这次一定要堵住漏洞 解法 注意到&#xff1a; <!-- flag in id 1000 -->拦截很多种字符&#xff0c;连 select 也不给用了。 if(preg_match("/or|\-|\\\|\/|\\*|\<|\>|\!|x|hex|\(|\)|\|select/i",$id)){die(&q…

yolov8推理由avi改为mp4

修改\ultralytics-main\ultralytics\engine\predictor.py&#xff0c;即可 # Ultralytics YOLO &#x1f680;, AGPL-3.0 license """ Run prediction on images, videos, directories, globs, YouTube, webcam, streams, etc.Usage - sources:$ yolo modepred…

Android开发-Android开发中的TCP与UDP通信策略的实现

Android 开发中的 TCP 与 UDP 通信策略的实现 1. 前言2. 准备工作3. Kotlin 中 TCP 通信实现客户端代码示例&#xff1a;服务器代码示例&#xff1a; 4. Kotlin 中 UDP 通信实现客户端代码示例&#xff1a;服务器代码示例&#xff1a; 5. TCP 与 UDP 应用场景分析TCP 实现可靠传…

搭建访问阿里云百炼大模型环境

最近这波大降价&#xff0c;还有限时免费&#xff0c;还不赶快试试在线大模型&#xff1f;下面整理访问百炼平台的千问模型方法。 创建RAM子账号并授权 创建RAM子账号 1. “访问控制RAM”入口&#xff08;控制台URL&#xff09; 然后点击进入“RAM管理控制台” 2. 添加用户 …

vue 区分多环境打包

需求&#xff1a;区分不同的环境&#xff08;测试、正式环境&#xff09;&#xff0c;接口文档地址不同&#xff1b; 配置步骤&#xff1a; 1、在根目录下面新建 .env.xxx 文件&#xff08;xxx 根据环境不同配置&#xff09; 文件中一定要配置的参数项为&#xff1a;NODE_ENV…

【Python搞定车载自动化测试】——Python实现CAN总线Bootloader刷写(含Python源码)

系列文章目录 【Python搞定车载自动化测试】系列文章目录汇总 文章目录 系列文章目录&#x1f4af;&#x1f4af;&#x1f4af; 前言&#x1f4af;&#x1f4af;&#x1f4af;一、环境搭建1.软件环境2.硬件环境 二、目录结构三、源码展示1.诊断基础函数方法2.诊断业务函数方法…

python 火焰检测

在日常生活,总是离不开火,有时候我们需要预防火灾发生,但是我们又不可能一直盯着,这时候我们就需要一款程序帮我们盯着,一旦发生火灾从而告知我们,今天就带大家编写这么一款应用。 安装需要的库 pip install opencv-python 代码实现 import cv2 # Library for…

qmt量化教程4----订阅全推数据

文章链接 qmt量化教程4----订阅全推数据 (qq.com) 上次写了订阅单股数据的教程 量化教程3---miniqmt当作第三方库设置&#xff0c;提供源代码 全推就主动推送&#xff0c;当行情有变化就会触发回调函数&#xff0c;推送实时数据&#xff0c;可以理解为数据驱动类型&#xff0…

mysql中使用 mysqldump 实现跨机器备份|数据同步

1.如果同步数据库&#xff0c;必须先创建数据库&#xff1a; mysqldump -h 192.168.1.10 --lock-tablesfalse -uroot -proot db_name | mysql -h127.0.0.1 -uroot -proot db_name2.过滤掉不想要的表(没试过&#xff0c;但是试过转为sql文件的) mysqldump -h 192.168.1.10 --…

vs2019 c++ 函数的返回值是对象的值传递时候,将调用对象的移动构造函数

以前倒没有注意过这个问题。但编译器这么处理也符合移动构造的语义。因为本来函数体内的变量也要离开作用域被销毁回收了。测试如下&#xff1a; 谢谢

实现信号发生控制

1. 信号发生器的基本原理 信号发生器是一种能够产生特定波形和频率的电子设备&#xff0c;常用于模拟信号的产生和测试。 信号发生器的基本原理 信号发生器的工作原理基于不同的技术&#xff0c;但最常见的类型包括模拟信号发生器和数字信号发生器&#xff08;DDS&#xff0…

[SCTF2019]babyre

打开看看还是有花指令 解除后首先pass1是解maze&#xff0c;好像又是三维的 x是25&#xff0c;也就是向下跳五层,注意是立体的 得到 passwd1&#xff1a; ddwwxxssxaxwwaasasyywwdd 接着往下看 有一个加密函数IDA逆向常用宏定义_lodword-CSDN博客 unsigned __int64 __fastca…

primeflex样式库笔记 Display相关的案例

回顾 宽度设置的基本总结 w-full&#xff1a;表示widtdh&#xff1a;100%&#xff1b;占满父容器的宽度。 w-screen&#xff1a;表示占满整个屏幕的宽度。 w-1到w-12&#xff0c;是按百分比划分宽度&#xff0c;数字越大&#xff0c;占据的比例就越大。 w-1rem到w-30rem&…

Oracle的安装以及一些相关问题

系列文章目录 Oracle的安装以及一些相关问题 文章目录 系列文章目录前言一、Oracle的安装二、常用命令三、误删dbf四、PLSQL乱码五、oracle更换数据库字符集总结 前言 一段时间没更新&#xff0c;主要最近一直在找工作&#xff0c;最终还是顺着春招找到工作了&#xff0c;现在…

美信時代監控易:堆疊交換機的監控與配置管理策略

隨著企業數字化轉型的加速&#xff0c;網絡架構的複雜性日益提升&#xff0c;堆疊交換機作為高可靠性、靈活擴展性的解決方案&#xff0c;在網絡基礎設施中扮演著至關重要的角色。然而&#xff0c;如何確保堆疊交換機的穩定運行&#xff0c;實現高效監控與配置管理&#xff0c;…

剖析 OceanBase 应对高并发的技术策略

推荐一个AI网站&#xff0c;免费使用豆包AI模型&#xff0c;快去白嫖&#x1f449;海鲸AI 在当今互联网时代&#xff0c;高并发场景下的数据库处理能力成为了许多应用的关键需求。为了满足用户对快速响应和高吞吐量的期望&#xff0c;数据库系统需要采用一系列技术来优化并发性…

七大经典排序算法——冒泡排序

文章目录 &#x1f4d1;冒泡排序介绍&#x1f324;️代码实现&#x1f324;️做个简单的优化&#x1f324;️复杂度和稳定性分析☁️结语 &#x1f4d1;冒泡排序介绍 冒泡排序是一种简单但效率较低的排序算法。它重复地比较相邻的两个元素&#xff0c;如果顺序不对则交换它们&…