项目工具|git相关

本博客暂时只作为个人资料,后续会进行完善,主要内容来自:
【【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从远程仓库拉取最新的提交到本地仓库,但不会自动合并到当前分支。需要手动合并

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

mysql设置允许外部ip访问,局域网IP访问

&#xff08;支持MYSQL8版本&#xff09; 1. 登录进入mysql&#xff1b;mysql -uroot -p输入密码进入 2. 输入以下语句&#xff0c;进入mysql库&#xff0c;查看user表中root用户的访问 use mysql; select host,user from user; 3. 更新user表中root用户域属性&#xff0c…

STM32——ADC篇(ADC的使用)

一、ADC的介绍 1.1什么是ADC ADC&#xff08;Analogto-Digital Converter&#xff09;模拟数字转换器&#xff0c;是将模拟信号转换成数字信号的一种外设。比如某一个电阻两端的是一个模拟信号&#xff0c;单片机无法直接采集&#xff0c;此时需要ADC先将短租两端的电…

深度学习(三)

5.Functional API 搭建神经网络模型 5.1利用Functional API编写宽深神经网络模型进行手写数字识别 import numpy as npimport pandas as pdimport matplotlib.pyplot as pltfrom sklearn.datasets import load_irisfrom sklearn.model_selection import train_test_splitfrom…

SVNCloud 与 Navicat和IDEA的连接

文章目录 SVNCloud 配置Navicat访问云端数据库与IDEA Java jdbc 的连接 SVNCloud 配置 访问网址&#xff1a;SVN注册账号&#xff0c;进入mysql区域&#xff1a; 数据库管理->创建数据库&#xff0c;输入数据库名称和密码&#xff0c;注意&#xff0c;这里的数据库名称实际…

vue 如何制作一个跟随窗口大小变化而变化的组件

vue 如何制作一个跟随窗口大小变化而变化的组件 像下图中展示的那些统计数件就是跟随窗口变化而变化的&#xff0c;而且是几乎等比缩放的。 实现原理 只简略说一下原理。 pinia 中记录一个窗口变化的高度值给要变化的组件添加一个高度值组件内部所有关于长度距离的值都通过这…

笔记 | 软件工程04:软件项目管理

1 软件项目及其特点 1.1 什么是项目 1.2 项目特点 1.3 影响项目成功的因素 1.4 什么是软件项目 针对软件这一特定产品和服务的项目努力开展“软件开发活动",&#xff08;理解&#xff1a;软件项目是一种活动&#xff09; 1.5 软件项目的特点 1.6 军用软件项目的特点 2 …

水库安全监测系统:智慧水文动态监测系统

TH-SW2水库安全监测系统&#xff0c;作为一款智慧水文动态监测系统&#xff0c;其在现代水利管理中扮演着至关重要的角色。该系统通过集成先进的数据采集、传输、处理和分析技术&#xff0c;为水库的安全运行提供了强有力的技术支撑。 水库安全监测系统是一种用于实时监测和记…

matplotlib绘制三维曲面图时遇到的问题及解决方法

在使用 Matplotlib 绘制三维曲面图时&#xff0c;可能会遇到一些常见的问题。今天我将全程详细讲解下遇到问题并且找到应对方法的全部过程&#xff0c;希望能帮助大家。 1、问题背景 在使用 matplotlib 绘制三维曲面图时&#xff0c;遇到了一个问题。代码如下&#xff1a; im…

Faiss框架使用与FaissRetriever实现

Faiss是一个由Facebook AI Research开发的库&#xff0c;用于高效相似性搜索和稠密向量聚类。它为机器学习和深度学习中的向量检索问题提供了一种高效的解决方案&#xff0c;特别是在处理大规模数据集时。Faiss支持多种索引类型&#xff0c;包括基于量化的索引、基于聚类的索引…

Ubuntu系统的k8s常见的错误和解决的问题

K8s配置的时候出现的常见问题 Q1: master节点kubectl get nodes 出现的错误 或者 解决方法&#xff1a; cat <<EOF >> /root/.bashrc export KUBECONFIG/etc/kubernetes/admin.conf EOFsource /root/.bashrc重新执行 kubectl get nodes 记得需要查看一下自己的…

倒计时 3 天!立即预约苹果 WWDC24 直播;RLAIF-V 大规模多模态偏好数据集上线,有效减少不同 MLLMs 幻觉现象

6 月 3 日-6 月 7 日&#xff0c;hyper.ai 官网更新速览&#xff1a; 优质公共数据集&#xff1a;10 个 优质教程精选&#xff1a;2 个 社区文章精选&#xff1a;3 篇 热门百科词条&#xff1a;5 条 6-7 月截稿顶会&#xff1a;5 个 访问官网&#xff1a;hyper.ai 公共数…

37. 【Java教程】序列化与反序列化

上一小节我们学习了 Java 的输入输出流&#xff0c;有了这些前置知识点&#xff0c;我们就可以学习 Java 的序列化了。本小节将介绍什么是序列化、什么是反序列化、序列化有什么作用&#xff0c;如何实现序列化与反序列化&#xff0c;Serializable 接口介绍&#xff0c;常用序列…

【JavaEE精炼宝库】多线程(4)深度理解死锁、内存可见性、volatile关键字、wait、notify

目录 一、死锁 1.1 出现死锁的常见场景&#xff1a; 1.2 产生死锁的后果&#xff1a; 1.3 如何避免死锁&#xff1a; 二、内存可见性 2.1 由内存可见性产生的经典案例&#xff1a; 2.2 volatile 关键字&#xff1a; 2.2.1 volatile 用法&#xff1a; 2.2.2 volatile 不…

C++中的stack和queue

C中的stack和queue 一丶stack1. stack的介绍2. stack的使用3. stack的模拟实现 二丶queue1. queue的介绍2. queue的使用3. queue的模拟实现 一丶stack 1. stack的介绍 stack的文档介绍 关于stack&#xff1a; 1. stack是一种容器适配器&#xff0c;专门用在具有后进先出操作的…

ROS socketcan_bridge使用说明

ROS socketcan_bridge使用说明&#xff08;以ubuntu20.04为例&#xff09; socketcan_bridge是什么 ROS针对socketcan提供了三个层次的驱动库&#xff0c;分别是ros_canopen&#xff0c;socketcan_bridge和socketcan_interface。 socketcan_interface&#xff1a; 功能&#x…

20240607在Toybrick的TB-RK3588开发板的Android12下适配IMX415摄像头和ov50c40

20240607在Toybrick的TB-RK3588开发板的Android12下适配IMX415摄像头和ov50c40 2024/6/7 11:42 【4K/8K摄像头发热量巨大&#xff0c;请做好散热措施&#xff0c;最好使用散热片鼓风机模式&#xff01;】 结论&#xff1a;欢迎您入坑。 Toybrick的TB-RK3588开发板的技术支持不…

STM32—按键控制LED(定时器)

目录 1 、 电路构成及原理图 2 、编写实现代码 main.c exit.c 3、代码讲解 4、烧录到开发板调试、验证代码 5、检验效果 此笔记基于朗峰 STM32F103 系列全集成开发板的记录。 1 、 电路构成及原理图 EXTI&#xff08;External interrupt/event controller&#xff…

机器视觉——物块分拣

项目进行到第四天&#xff0c;我们学到了很多&#xff0c;可以进行实操。 首先我们利用相机软件进行采图 然后导入代码里面 完整代码 dev_get_window (WindowHandle) list_image_files (采图, default, [], ImageFiles) for Index : 0 to |ImageFiles| - 1 by 1read_image (Im…

上BFT,是你的首选

上BFT&#xff0c;是你的首选 如果你想要找最智能的机器人&#xff0c;想要找品牌最全或者想要咨询专业的解决方案&#xff0c;一定不要错过BFT机器人采购站。BFT致力于为广大用户提供品质卓越、技术先进的机器人产品。 BFT里面机器人多种多样&#xff0c;不管您是想要工业机器…

取证工作: SysTools MailXaminer, 用强大功能辅助电子邮件调查工作的每一步

天津鸿萌科贸发展有限公司是 SysTools 系列软件的授权代理商。 SysTools MailXaminer 电子邮件取证软件将调查工作分为五个阶段&#xff1a;邮件加载、预览、搜索、分析及导出。软件对调查工作的每一阶段都提供了现代高级功能&#xff0c;以帮助数字取证调查员根据其具体要求对…