项目工具|git相关

news2024/11/24 9:31:37

本博客暂时只作为个人资料,后续会进行完善,主要内容来自:
【【Git第一讲】:git分区与两个盒子的故事】

理解暂存区和未暂存区

git为什么要多一个暂存区?难道不能我把代码写完后就是未暂存区,然后直接提交到版本库吗?

比如说我现在开发了很多的代码,

比如说在file1中,我们开发完成了功能A、功能B的50%和功能C,

然后我们在file2中完成了功能B的另外50%。

我们现在如果想直接提交到版本库,在commit的时候,我们应该把所有的代码改动都应该说清楚,鉴于我们所改动的代码较多,一个commit感觉有点难说明白,因为我们在file1中开发了这老些功能,然后有的还没开发完,随后我们在file2中又开发完了a中没有完成的部分,你应该怎么描述这个commit呢?

如果我们一起行直接把所有代码全部提交到暂存区中,会导致我们的代码非常乱。

所以说:
如果没有暂存区,那么我们只能把多文件的,大量的代码进行一次性的提交

现在又了暂存区,我们可以选择暂存部分、单独的文件,甚至我们可以只暂存某些行甚至一行!!!!!

如果对于某一个功能,我们涉及到了数十个文件,并且在文件中互相参杂着别的功能的代码,这样我们就能非常清晰得完成功能B的上传,先单独把功能b上传到暂存区,然后commit信息“完成了功能B的开发”,随后把暂存区代码上传到版本库。

各操作解析:

在这里插入图片描述
最后在终端上我们可以使用:
git status 来查看:

  • 已暂存的梗菜(将要被提交)
  • 尚未暂存的更改(也就是已经修改但出于未暂存区)
  • 未跟踪的文件

示例输出如下:

On branch main
Your branch is up to date with 'origin/main'.

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   file1.txt
        modified:   file2.txt

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   file3.txt

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        file4.txt
  • Changes to be committed: 列出已经暂存的文件,这些文件将包含在下次提交中。可以使用 git restore --staged 来取消暂存。
  • Changes not staged for commit: 列出已经修改但尚未暂存的文件。可以使用 git add 将这些文件添加到暂存区。
  • Untracked files: 列出未被 Git 跟踪的文件。可以使用 git add 将这些文件添加到暂存区并开始跟踪

变基or合并、如何撤销变基和合并

其实合并和变基做的是一样的操作。

那么为什么我们应该选择变基而不是合并呢?

合并会让各个分叉做连线,非常丑,所以我们应该做变基。

自行到 gittree 实验即可

面对冲突要么妥协要么解决

只要修改不在同一个文件的同一个位置,就不会引起冲突。

当两个分支同时对某一个同一个位置的代码作出修改的时候,我们到底应该如何把两个分支代码合并到一起。

妥协

妥协指的是妥协于其中一个冲突

解决冲突

A分支和B分支同时修改了一个地方,他们两个代码都有用,但是我要重新调整一下组织形式,所以说我们就把代码改一改再提交。我们称为解决冲突。

git和github

  1. 如何将本地与远端建立联系:SSH
    1. 查看电脑中是否存在ssh的key ls -al ~/.ssh,应该关注
    2. 如果没有就进行创建:ssh-keygen -t rsa -b 4096 -C "caiziming0011@gmail.com"
    3. 添加ssh私钥到ssh代理(不添加也可以),启动ssh代理eval "$(ssh-agent -s)",然后将私钥添加到ssh代理ssh-add ~/.ssh/id_rsa
    4. 将公钥添加到 github 上。cat ~/.ssh/id_rsa.pub
    5. 验证是否连接成功:ssh -T git@github.com
    6. 如果失败:
  2. 将 git_study 仓库推到远端(origin是远端仓库名,可以起别的名字但是一般用这个)
    1. git remote add origin git@github.com:hong-kailin/git study.git 将名为 origin 的远程仓库与指定的 GitHub 仓库地址关联起来
    2. git remote set-url origin git@github.com:czm-tech1/guttest.git
    3. git branch -M master 将当前分支重命名(不是必须)
    4. git push -u origin master 将master分支关联到origin(master也可以是别的分支)
  3. 其他常用命令
    1. git remote -v查看远程连接
    2. git remote remove origin 取消与远程仓库的连接
    3. git push 将本地的提交推送(上传)到远程仓库
    4. git pull origin master从远程仓库拉取(下载)最新的提交到本地仓库,并自动合并到当前分支
    5. git fetch origin从远程仓库拉取最新的提交到本地仓库,但不会自动合并到当前分支。需要手动合并

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

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

相关文章

ROS2从入门到精通4-3:全局路径规划插件开发案例(以A*算法为例)

目录 0 专栏介绍1 路径规划插件的意义2 全局规划插件编写模板2.1 构造规划插件类2.2 注册并导出插件2.3 编译与使用插件 3 全局规划插件开发案例(A*算法)常见问题 0 专栏介绍 本专栏旨在通过对ROS2的系统学习&#xff0c;掌握ROS2底层基本分布式原理&#xff0c;并具有机器人建…

docker bash: vi: command not found 修改文件无法使用 vi yum的方法

如题&#xff0c;被入坑很多次。也参考了很多的修复docker 中的vi yum等方法。最终都未解决。 因为要修改 已安装容器中的各类配置信息。无法使用vi yum很麻烦。除去使用docker 挂载文件方法外&#xff0c;还可以使用如下方法直接修改对应的配置文件信息。 如: 修改 logstas…

通过抑制治疗上调的环氧化酶-2来改善光动力性能的肿瘤归巢嵌合肽菱形体

引用信息 文 章&#xff1a;Tumor Homing Chimeric Peptide Rhomboids to Improve Photodynamic Performance by Inhibiting Therapy‐Upregulated Cyclooxygenase-2. 期 刊&#xff1a;Smal&#xff08;影响因子&#xff1a;13.3&#xff09; 发表时间&#xff1a…

赢单有秘诀,大模型智能陪练更懂你

随着数字化技术在营销场景的加速应用&#xff0c;产品营销节奏不断加快&#xff0c;消费者需求日益多元化、个性化&#xff0c;市场竞争日趋激烈。面对复杂多变的市场环境&#xff0c;企业新产品、新服务的推出速度大幅提升&#xff0c;产品知识更新愈加频繁&#xff0c;传统的…

神经网络 torch.nn---优化器的使用

torch.optim - PyTorch中文文档 (pytorch-cn.readthedocs.io) torch.optim — PyTorch 2.3 documentation 反向传播可以求出神经网路中每个需要调节参数的梯度(grad)&#xff0c;优化器可以根据梯度进行调整&#xff0c;达到降低整体误差的作用。下面我们对优化器进行介绍。 …

通过龙讯旷腾PWmat发《The Journal of Chemical Physics》 :基于第一性原理分子动力学热力学积分的离子溶剂化自由能计算

背景导读 离子溶解是电化学中一个重要的过程。电化学反应中许多重要的参数&#xff0c;例如电化学还原电位、无限稀释活度系数、亨利定律溶解常数和离子溶解度等&#xff0c;都与离子的溶剂化能有关。然而&#xff0c;由于测量技术和数据处理的困难&#xff0c;离子溶剂化能的…

LabVIEW与Arm控制器之间的通讯

LabVIEW是一个强大的图形化编程环境&#xff0c;广泛应用于自动化控制、数据采集和测试测量等领域。而Arm控制器则是嵌入式系统中常用的处理器架构&#xff0c;广泛用于各种控制和计算任务。将LabVIEW与Arm控制器进行通讯控制&#xff0c;可以结合二者的优势&#xff0c;实现高…

笔记96:前馈控制 + 航向误差

1. 回顾 对于一个 系统而言&#xff0c;结构可以画作&#xff1a; 如果采用 这样的控制策略&#xff0c;结构可以画作&#xff1a;&#xff08;这就是LQR控制&#xff09; 使用LQR控制器&#xff0c;可以通过公式 和 构建一个完美的负反馈系统&#xff1b; a a 但是有上…

学习笔记——网络参考模型——TCP/IP模型(网络层)

三、TCP/IP模型-网络层 1、IPV4报头 (1)IPV4报文格式 IP Packet(IP数据包)&#xff0c;其包头主要内容如下∶ Version版本∶4 bit&#xff0c;4∶表示为IPv4; 6∶表示为IPv6。 Header Length首部长度∶4 bit&#xff0c;代表IP报头的长度(首部长度)&#xff0c;如果不带Opt…

安卓手机平板使用JuiceSSH无公网IP远程连接本地服务器详细流程

文章目录 前言1. Linux安装cpolar2. 创建公网SSH连接地址3. JuiceSSH公网远程连接4. 固定连接SSH公网地址5. SSH固定地址连接测试 前言 处于内网的虚拟机如何被外网访问呢?如何手机就能访问虚拟机呢? 本文就和大家分享一下如何使用 cpolarJuiceSSH 实现手机端远程连接Linux…

conntrack如何限制您的k8s网关

1.1 conntrack 介绍 对于那些不熟悉的人来说,conntrack简单来说是Linux内核的一个子系统,它跟踪所有进入、出去或通过系统的网络连接,允许它监控和管理每个连接的状态,这对于诸如NAT(网络地址转换)、防火墙和保持会话连续性等任务至关重要。它作为Netfilter的一部分运行,…

Ubuntu的启动过程

尽管通常情况下Ubuntu的启动并不需要用户过多地参与&#xff0c;但是Ubuntu系统的启动本身是一个非常复杂的过程。在这个过程中&#xff0c;有硬件的检测、系统内核的准备以及各种系统服务的启动等。作为系统管理员&#xff0c;需要深入了解其中所经历的阶段&#xff0c;才能在…

Cesium开发环境搭建(二)

由于win7搭建很费事&#xff0c;重新安装了OS&#xff0c;win10的。 记录一下&#xff0c;搭建步骤&#xff1a; 1.下载node.js。 百度搜索即可下载对应的版本。下载cesium。 2.安装node.js。 安装后&#xff0c;输入node -v&#xff0c;显示版本信息&#xff0c;表示安装…

【面试干货】索引的作用

【面试干货】索引的作用 1、索引的作用 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 1、索引的作用 索引 可以协助 快速查询、更新数据库表中数据。 通过使用索引&#xff0c;数据库系统能够快速定位到符合查询条件的数据&#xff0c;提…

1.6T模块与DSP技术的演进

近日&#xff0c;光通信行业市场机构LightCounting在市场报告中指出&#xff0c;去年的模块供应商已经展示了首批1.6T光学模块的风采&#xff0c;而今年&#xff0c;DSP供应商更是着眼于第二代1.6T模块设计的未来。这些前沿技术的突破&#xff0c;不仅代表了数据传输速度的飞跃…

【set】集合总结

一、Set Set集合是Collection的子接口,代表一种集合,此种集合是元素不重复. 有两个常用实现类 HashSet 是元素不重复,无序,主要是指遍历顺序和插入顺序不一致 TreeSet 是元素不重复,排序 LinkedHashSet不常用 二、HashSet 1.1 介绍 HashSet是Set的实现类 底层是由哈希表实…

Python数据分析I

目录 注&#xff1a;简单起见&#xff0c;下文中"df"均写为"表名"&#xff0c;"函数"均写为"HS"&#xff0c;"属性"均写为"SX"&#xff0c;"范围"均写为"FW"。 1.数据分析常用开源库 注释…

物联网-高性能时序数据库QuestDB

高性能时序数据库QuestDB 开源地址&#xff1a;https://github.com/questdb/questdb 官网&#xff1a;https://questdb.io/ 当前 13.9k start 自带免费可视化管理界面 支持各种语言客户端 C & C .NET Go Java Node.js Python Rust 上手容易可兼容 Postgresql InfluxDB …

浅浅写一个Word、PowerPoint、Excel文档转PDF工具

前言 最近在搞知识库&#xff0c;需要把各种 Word、PowerPoint、Excel 文件转换成 PDF 文件&#xff0c;不然 Word 中的表格中的文字提取会出现一些问题&#xff1b;使用 Office 或者 WPS 将大量文件转换成 PDF 需要频繁重复打开文件&#xff0c;点击保存为PDF&#xff0c;然后…

Qt_C++ RFID网络读卡器Socket Udp通讯示例源码

本示例使用的设备&#xff1a; WIFI/TCP/UDP/HTTP协议RFID液显网络读卡器可二次开发语音播报POE-淘宝网 (taobao.com) #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QHostInfo> #include <QNetworkInterface> #include <…