版本控制(Version Control)(GIT )

版本控制系统的基本概念

  • 版本库(Repository):存储项目版本的本地或远程存储库。
  • 工作副本(Working Copy):可编辑的项目本地副本。
  • 文件(File):项目中的单个文件。
  • 版本(Version or Revision):项目在某一时刻的内容记录。
  • 更改(Change or Diff):两个版本之间的差异。
  • 头(Head):当前版本。

版本控制系统的功能

  • 可靠:保持版本,只要我们需要它们;允许备份。
  • 多文件:跟踪项目的多个文件版本。
  • 有意义的版本:记录更改的内容和原因。
  • 恢复:恢复旧版本,部分或全部恢复。
  • 比较版本:比较不同版本的差异。
  • 查看历史:查看整个项目或单个文件的历史。
  • 不仅仅用于代码:还可以用于文档、图片等。
  • 允许多人协作
    • 合并:合并从同一版本分支出来的不同版本。
    • 跟踪责任:记录谁做了哪些更改。
    • 并行工作:允许程序员独立工作一段时间(同时保留版本控制)。
    • 进行中的工作:允许多个程序员分享未完成的工作(不打扰他人,同时保留版本控制)。

版本控制与三大原则

  1. 安全可靠(Safe from Bugs)
    • 查找某个功能何时以及在哪个版本中损坏。
    • 查找其他类似的错误。
    • 增加对代码未发生意外更改的信心。
  2. 易于理解(Easy to Understand)
    • 为什么进行了某个更改?
    • 同时还更改了什么?
    • 我可以问谁有关这段代码的问题?
  3. 为变化做好准备(Ready for Change)
    • 管理和组织变化。
    • 接受并集成其他开发人员的更改。
    • 在分支上隔离试验性的工作。

Git的三部分

  1. .git 目录:包含版本库的元数据和对象数据库。
  2. 工作目录:项目的当前版本,可以编辑。
  3. 暂存区(Staging Area):一个预备提交的区域。

常用Git命令

  • git clone:克隆远程仓库到本地。
  • git add:将更改添加到暂存区。
  • git commit:提交暂存区的更改,生成一个新的版本。
  • git push:将本地版本库的更改推送到远程仓库。
  • git pull:从远程仓库拉取最新的更改并合并到本地。
  1. 使用 git stash

如果您在本地作了修改,还没有提交,并希望先更新远程的变化,可以使用 git stash 来临时保存本地的改动,然后执行 git pull 更新,最后使用 git stash pop 来恢复您的本地改动。

git stash       # 保存当前的工作进度
git pull        # 更新远程仓库的改动
git stash pop   # 应用之前保存的改动

2. 使用 git pull 的参数

        使用 --rebase 参数

git pull --rebase 参数可以先把本地未提交的改动放到一边,拉取远程的更新,然后再把这些改动应用在更新后的代码上。

git pull --rebase origin master

这个命令会尝试把你的改动重新应用在拉取下来的代码上,如果有冲突,git 会提示你解决。

3. 使用 git fetch + git rebase

如果想更细致地控制更新过程,可以分两步进行:先使用 git fetch 拉取远程仓库的更新,然后使用 git rebase 来重新应用你的本地改动。

git fetch origin
git rebase origin/master

存在的问题:

问题1:远程origin已经存在

当您尝试使用以下命令添加新的远程存储库时:

Git 响应说origin远程已经存在。 Git 存储库中的每个远程都由唯一名称标识,并且origin是用于主远程的默认名称。由于您已经origin设置了一个遥控器(指向https://gitee.com/chat-bupt/simu-customer.git),因此尝试添加另一个origin遥控器将不起作用。

解决方案

  • 如果您打算将远程 URL更改origin为新的 URL,则应使用以下git remote set-url命令:

    git remote set-url origin https://gitee.com/user/simu.git
  • 如果您打算在 之外添加一个新的origin遥控器,则需要为其指定一个不同的名称,如下所示:

    git remote add another-name https://gitee.com/user/simu.git

    需要注意:

    (1)创建一个分支,需要首先进行一次提交。

    (2)更改远程仓库URL为SSH,可以通过SSH公钥直接连接

    git remote set-url origin git@gitee.com:用户名/test.git

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

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

相关文章

jenkins 用户权限(Manage-Roles)

本次需求将DEV环境和SIT环境分开,SIT用户登录上来只能看他的SIT项目和视图 安装roles插件 进入 manage role 项目授权 用户 正则匹配你需要的项目 dev .*-dev*或者.*-dev$ sit .*-sit最后细分assign role 测试使用sit账号登录 ,视图和项目都是SIT账号的

爬虫视图展示之 Power BI

实现方式 读取数据的实现 selenium 库 requests 库 存储媒介 MysqlElasticSearch 图表展示 GrafanaPower BI 是什么? Power BI 简单且快速,能够从 Excel 电子表格或本地数据库创建快速见解。 同时 Power BI 也可进行丰富的建模和实时分析&#xff…

移动云:开发者手中的未来钥匙

《移动云:开发者手中的未来钥匙》 引言一、无缝集成,加速开发进程二、数据智能,洞悉用户心声三、安全合规,护航创新之旅四、成本优化,助力轻装前行总结 引言 在科技日新月异的今天,移动云已成为推动行业变革…

kube-apiserver内存占用过多 go tool pprof 入门

目录 环境问题排查1、kube-apiserver %CPU 146 正常,%MEM 高达70,,load average 400,出现kswapd0进程。2、k describe node 看到 SystemOOM3、是否大量连接导致?4、通过prom查看指标5、访问K8s API6、pprof 火焰图 解决…

云服务器购买之后到部署项目的流程

1.通过账号密码登录百度智能云控制台; 2.进入对应的服务器‘云服务器BBC’ 找到’实例‘即找到对应的服务器列表; 此时通过本地电脑 1.cmd命令提示符 PING 服务器公网地址不通; 2.通过本地电脑进行远程桌面连接不通 原因:没有关联安全组,或者…

持续总结中!2024年面试必问 20 道 Redis面试题(十)

上一篇地址:持续总结中!2024年面试必问 20 道 Redis面试题(九)-CSDN博客 十九、Pipeline有什么好处,为什么要用pipeline Pipeline(管道)是 Redis 提供的一种功能,它允许客户端将多…

Linux的nload/nettraf命令实时网卡流量监测

对于linux的网卡上下行流量监测方法有很多 例如nload 现成的nload命令 现成的有 nload 安装 yum -y install nload 查看所有网卡实时网速 sudo nload -m 按enter/上下翻页键即可切换网卡 查看指定网卡实时网速 sudo nload eth0 -m 基于nettraf编译的rpm包 当然也可以你…

MySQL:如果用left join的话,左边的表一定是驱动表吗

一、前言 在日常开发过程中关于MySQL的优化方面,我们知道小表驱动大表原理。例如left join,放在左边的表作为驱动表。但是用left join的话,左边的表一定是驱动表吗,本文将通过案例分析给出详细分析。 二、概念 在MySQL中&#xf…

Android开发 -- JNI开发

1.配置JNI环境 创建JNI文件夹 在项目的主目录中创建一个名为 JNI 的文件夹。这个文件夹将包含所有的本地源代码和配置文件。 编写Android.mk文件 这个文件是一个 Makefile,用来指导 NDK 如何编译和构建本地代码。 #清除之前定义的变量,确保每个模块的…

安装HAP时提示“code:9568344 error: install parse profile prop check error”错误

问题现象 在启动调试或运行应用/服务时,安装HAP出现错误,提示“error: install parse profile prop check error”错误信息。 解决措施 该问题可能是由于应用使用了应用特权,但应用的签名文件发生变化后未将新的签名指纹重新配置到设备的特…

[Java EE] 网络编程与通信原理(三):网络编程Socket套接字(TCP协议)

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏:🍕 Collection与数据结构 (92平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm1001.2014.3001.5482 🧀Java …

BookStack VS HelpLook两款知识库软件的区别

现在很多企业都会进行知识管理,在这个过程中,选择一个合适的知识库软件是一个不可避免的问题。在众多知识库软件中,HelpLook和BookStack这两款软件备受企业瞩目。不知如何选择,今天LookLook同学就简单介绍一下这两款知识库的区别&…

5.27作业

定义自己的命名空间my_sapce&#xff0c;在my_sapce中定义string类型的变量s1&#xff0c;再定义一个函数完成对字符串的逆置。 #include <iostream>using namespace std; namespace my_space {string s1;string reverse1(string s1);} using namespace my_space; int m…

工作经验总结:C语言中类函数的宏定义、宏定义拼接、常量指针与指针常量的识别记忆技巧整理

一、类函数的宏定义 初步接触AUTOSARS架构代码时&#xff0c;发现其中用了很多类函数的宏定义以及宏定义拼接等一些技巧来进行模块化&#xff0c;如果对C语言掌握不够熟练则可能会觉得比较难看懂&#xff0c;下面简单介绍一下几种见到的类函数宏定义使用方式。 大致的类函数的…

深入解读 ChatGPT 的基本原理(个人总结版)

引言 背景 人工智能&#xff08;AI&#xff09;技术自20世纪中期诞生以来&#xff0c;经历了多次革新和进步。从最早的图灵测试&#xff0c;到20世纪末的深蓝计算机击败国际象棋冠军&#xff0c;再到21世纪初谷歌AlphaGo击败围棋冠军&#xff0c;AI技术的飞速发展改变了人们的…

BEVFormer论文详细解读

文章目录 1. 前言1.1 3D VS 4D1.2 .特征融合过程中可能遇到的问题1.3 .BEV提出背景1.4 .BEV最终得到了什么1.5 .输入数据格式 2. 背景/Motivation2.1 为什么视觉感知要用BEV&#xff1f;2.2 生成BEV视角的方法有哪些&#xff1f;为何选用Transformer呢&#xff1f; 3. Method/S…

DSP教程

/// TMS320F28335 具有 150MIPS、FPU、512KB 闪存、EMIF、12 位 ADC 的 C2000™ 32 位 MCU /// 此文档中的《8.3 内存映射》部分做个大概的了解&#xff0c;用的时候查阅即可。 TMS320F2833x、TMS320F2823x 实时微控制器 数据表 (Rev. Q)PDF /// 这个实验要实际操作&…

分布式锁与ZooKeeper的探索之旅

一、引言 在现代的软件开发中&#xff0c;分布式系统扮演着越来越重要的角色。随着系统的扩展和复杂度的增加&#xff0c;确保多个进程或服务之间的数据一致性变得尤为重要。在这样的背景下&#xff0c;分布式锁的概念应运而生&#xff0c;它为分布式系统提供了一种协调机制&a…

Vapor Mode:Vue.js 的速度与激情,代码界的闪电侠

大家好&#xff0c;我是宝哥。 在快速发展的网络开发世界中&#xff0c;创新的Vue.js团队给我们带来了Vapor Mode。这个新模式优化了Vue的核心渲染过程&#xff0c;帮助我们的应用程序像轻烟一样运行&#xff0c;开发者无需深入复杂的优化工作。 在这篇文章中&#xff0c;我们将…

硝基酪氨酸检测试剂盒Nitrotyrosine ELISA Kit,比色法

硝基酪氨酸是反应体内氧化应激的标记物质。StressMarq可以提供硝基络氨酸的检测试剂盒。酪氨酸硝基化会导致细胞功能损伤。因此检测样本中的硝基酪氨酸含量尤为重要。StressMarq的硝基络氨酸检测试剂盒有多篇文献引用&#xff0c;产品质量有保障。除了有硝基络氨酸的检测试剂盒…