git入门操作(2)

文章目录

  • git入门操作(2)
      • git diff 查看差异
        • git diff
      • gitignore忽略文件
        • 1.在代码仓库创建这个文件
        • 2.添加对 log 文件过滤
      • 连接远程仓库与ssh配置
      • 远程仓库和本地仓库关联
      • 步骤
      • 分支基本操作
        • 步骤
        • 命令:
      • 合并冲突
        • 分支合并逻辑
        • 1.新建分支 dev,并且在 main分支的test.txt 中故意和 dev 分支中 test.txt 的同样内容修改成不一样
      • 回退和rebase

git入门操作(2)

紧接着上一期,如果没有看过上一期的朋友,可以点进我的主页,找到我的 git 专栏里面,有从安装到使用一步一步的教程。

git diff 查看差异

git diff :显示工作目录与暂存区之间的差异。即,显示自上次 git add 或 git commit 以来,你对文件所做的所有未暂存的(unstaged)更改git diff --cached :显示暂存区与最新提交之间的差异。这可以帮助你查看所有已暂存(staged)但尚未提交的更改。git diff <commit_id1> <commit_id2>:显示两次 commit 的不同git diff <branch1> <branch2>:查看两个分支的不同
git diff

比如,当我现在 add 了一个test.txt,然后再对 test.txt进行修改,就可以就行对比:
在这里插入图片描述
修改加入 aaa
对比:
在这里插入图片描述
然后我commit,再 add aaa修改到暂存区,这个时候,暂存区和仓库是不一样的,就可以使用
git diff -cached 比较

在这里插入图片描述

gitignore忽略文件

.gitignore 文件是 Git 版本控制系统中的一个配置文件,用于指定 Git 应该忽略哪些文件或目录,不对它们进行跟踪或提交。这对于避免将编译生成的中间文件、操作系统特定的配置文件或敏感信息(如密码、密钥)等不必要的内容纳入版本控制非常有用

1.在代码仓库创建这个文件

在这里插入图片描述

2.添加对 log 文件过滤

在这里插入图片描述

然后我们添加一个 test.log 文件查看是否生效:
在这里插入图片描述
使用 git status 查看有没有创建的 test.log 文件,如果没有就成功了

在这里插入图片描述
通过合理使用 .gitignore 文件,你可以保持 Git 仓库的整洁和安全性,避免将不必要的文件或敏感信息纳入版本控制。

连接远程仓库与ssh配置

这里我使用 gitee 为例子:
在 gitee 中创建仓库,配置 ssh
在这里插入图片描述

ssh-keygen -t rsa //创建公钥
cat ~/.ssh/id_rsa.pub //获取公钥

把获取到的公钥加入到 gitee中去,如果不是第一次配置公钥,在这之前要配置config到自己密钥,也就是在用户/ssh/config中写配置
在这里插入图片描述
然后就可以使用 ssh 的方式进行 clone 远程仓库了
在这里插入图片描述

远程仓库和本地仓库关联

其实这里就是反过来,先创建远程仓库,然后使用命令把本地的仓库和远程仓库关联起来,本地仓库可以和远程仓库名称不一样。

首先在GitHub或者上创建一个新仓库,然后使用git remote add命令将本地仓库与远程仓库关联。接着,通过git push命令将本地仓库的内容推送到远程仓库。最后,通过git pull命令将远程仓库的修改拉取到本地仓库。git remote -v查看远程仓库和本地仓库关联。

你的本地历史和远程历史不相关。可以使用以下命令来强制合并:git pull origin master --allow-unrelated-histories。这将允许合并不同的历史。然后再尝试推送。

步骤

  • 📂 在GitHub上创建新的仓库并复制其地址。
  • 💻 使用git remote add origin [URL]命令将本地仓库与远程仓库关联。
  • 📤 使用git push -u origin main命令将本地仓库的内容推送到远程仓库。
  • 📥 使用git pull origin main命令将远程仓库的修改拉取到本地仓库。
  • 🛠️ 注意git pull会自动合并远程仓库的修改,如果存在冲突需要手动解决。

分支基本操作

Git中分支的概念及其基本操作,包括分支的创建、切换、合并和删除。通过实际操作演示了如何在不同分支上进行开发和测试,并最终将开发分支合并到主线分支中。

步骤
  • 🌳 分支的概念:分支是代码库中的不同版本,可以独立存在并有自己的提交记录,适合团队协作和开发管理。
  • 🔄 分支的基本操作:包括创建分支(git branch)、切换分支(git checkoutgit switch)、合并分支(git merge)和删除分支(git branch -d)。
  • 🛠️ 实际应用场景:多个开发人员可以在各自的分支上进行开发,最后合并到主线代码库中,确保项目的稳定性和高效协作。
  • 🚫 避免歧义:Git 2.23版本引入了git switch命令,专门用于切换分支,避免与恢复文件操作的歧义。
命令:
git branch :查看分支
git switch :切换分支
git branch 分支名  :创建分支
git merge <branch>:合并分支(把<branch>分支合并到当前分支)
git branch -d 分支名:删除分支

在这里插入图片描述
在这里插入图片描述

合并冲突

解决分支合并时的冲突。

分支合并逻辑
  • 如果两个分支没有重合的部分,Git 会自动完成合并;
  • 如果两个分支修改了同一行代码,Git 会产生冲突,需要手动解决;
  • 可以使用 git statusgit diff 命令查看冲突文件和具体内容;
  • 手动编辑文件,留下想要的内容,再提交commit;
  • 可以使用 git merge --abort 命令终止合并。
1.新建分支 dev,并且在 main分支的test.txt 中故意和 dev 分支中 test.txt 的同样内容修改成不一样

在这里插入图片描述
在main中修改 test.txt 为 111
在这里插入图片描述
在 dev 中修改 test.txt 为 222
在这里插入图片描述
在这里插入图片描述

切换回 main 合并 dev:
在这里插入图片描述在这里插入图片描述

回退和rebase

Git revert(回退)
Git revert用于撤销某个特定的提交,并创建一个新的提交来记录这个撤销操作。与reset操作不同,revert不会改变历史提交的顺序或删除任何提交,而是通过在提交历史中插入一个新的提交来“反转”之前的提交。这使得revert成为一种相对安全且不会破坏提交历史完整性的回退方式。

使用场景:

当你需要撤销某个特定的提交,但又不希望删除该提交或改变提交历史时。
当你希望在保留提交历史的同时,修复某个提交中的错误或不当更改。
Git rebase
Git rebase用于将一个分支的更改重新应用到另一个分支上,从而创建一个更线性和清晰的提交历史。通过rebase,你可以将分支的提交历史“移动”到另一个基准点上,使得整个项目的历史更加整洁。

使用rebase的常见场景包括:

合并分支:
当你想要将一个分支的更改合并到另一个分支上时,可以使用rebase来避免产生额外的合并提交。通过rebase,你可以将待合并分支的更改“重放”到目标分支上,从而在目标分支上形成一个干净的提交历史。
更新分支:
在多人协作开发中,当主分支(如master或main)上有新的提交时,你可以使用rebase来将你的分支与主分支同步。这样做的好处是,你的分支将保持线性提交历史,而不会包含与主分支合并产生的额外提交。
清理提交历史:
rebase还可以用于清理提交历史,例如合并多个小的提交或消除不必要的合并提交。这有助于使项目的提交历史更加清晰和易于理解。
需要注意的是,使用rebase可能会改变提交的哈希值。因此,在已经推送到远程仓库的分支上使用rebase时,需要谨慎处理,以避免影响其他开发者的工作。通常建议,在推送更改之前先使用rebase来保持提交历史的线性,但在推送之后则应避免使用rebase来修改已经共享的提交历史。

总的来说,revert和rebase都是Git中非常有用的工具,它们各自有不同的用途和适用场景。在选择使用哪个工具时,需要根据具体的需求和上下文来做出决策。

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

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

相关文章

ONLYOFFICE 文档8.2版本已发布:PDF 协作编辑、改进界面、性能优化等更新

ONLYOFFICE 在线编辑器最新版本已经发布&#xff0c;其中包含30多个新功能和500多个错误修复。阅读本文了解所有更新。 关于 ONLYOFFICE 文档 ONLYOFFICE 是一个开源项目&#xff0c;专注于高级和安全的文档处理。坐拥全球超过 1500 万用户&#xff0c;ONLYOFFICE 是在线办公领…

Tcp_Sever(线程池版本的 TCP 服务器)

Tcp_Sever&#xff08;线程池版本的 TCP 服务器&#xff09; 前言1. 功能介绍及展示1.1 服务端连接1.2 客户端连接&#xff08;可多个用户同时在线连接服务端&#xff09;1.3 功能服务1.3.1 defaultService&#xff08;默认服务&#xff09;1.3.2 transform&#xff08;大小写转…

【Qt】qss 设置通过 addAction 添加的 QToolButton的图标

文章目录 1. 使用 QSS 和状态示例代码2. 使用 QSS 动态更改图标QSS 示例总结 在 Qt 中&#xff0c;QSS 不能直接用于为 QAction 设置图标&#xff0c;因为 QSS 主要用于样式和外观的设置&#xff0c;而不是用于数据&#xff08;如图标&#xff09;的设置。 不过&#xff0c;你…

HTB:Antique[WriteUP]

目录 连接至HTB服务器并启动靶机 1.After running an nmap scan on TCP ports we identify port 23 open. If we run another scan on UDP ports, which port do we find open? 2.What service is running on the UDP port that we identified in the previous question? …

Next.js14快速上手

文章目录 ***客户端***什么是Next项目在线地址官方文档项目创建查看项目目录结构app属于根目录 ***服务端***vercel数据库prisma 客户端 什么是Next Next.js 是一个用于构建全栈 Web 应用程序的 React 框架。您可以使用 React Components 来构建用户界面&#xff0c;并使用 Ne…

java实现日志按天打印

<?xml version"1.0" encoding"UTF-8"?> <configuration><!-- 应用名称&#xff1a;和统一配置中的项目代码保持一致&#xff08;小写&#xff09; --><property name"APP_NAME" value"mita-main"/><!--日…

AudioSetCaps数据集:包含190万对来自AudioSet录音的音频-字幕对。

2024-10-21&#xff0c;由西北工业大学、西安联丰声学技术有限公司、南洋理工大学、萨里大学和中国科学院声学研究所创建了AudioSetCaps数据集&#xff0c;包含190万对来自AudioSet录音的音频-字幕对。这个数据集在音频-文本检索和自动音频字幕两项下游任务上展现了卓越的性能&…

百度翻译以及另外三款翻译工具推荐!!!

在这个全球化的时代&#xff0c;翻译工具已经成为我们生活中不可或缺的一部分。我们需要使用翻译工具来克服语言障碍&#xff0c;无论是出国旅行、商务谈判还是学术研究。那么&#xff0c;市场上有各种各样的翻译工具。有哪些好用的在线翻译软件呢&#xff1f;别担心&#xff0…

系统架构设计师教程 第2章 2.1-2计算机系统及硬件 笔记

2.1计算机系统概述 ★☆☆☆☆ 计算机系统 (Computer System) 是指用于数据管理的计算机硬件、软件及网络组成的系统。 一般指由硬件子系统和软件子系统组成的系统&#xff0c;简称为计算机。 将连接多个计算机以实现计算机间数据交换能力的网络设备&#xff0c;称为计算机网…

LabVIEW提高开发效率技巧----节省内存

在LabVIEW开发过程中&#xff0c;内存管理是保障程序稳定性和性能的关键。本文将详细介绍如何通过队列处理来节省内存&#xff0c;尤其是如何通过解耦释放不再需要的数据&#xff0c;防止内存泄漏。通过多个实际例子&#xff0c;从不同角度探讨队列处理在大数据量或长时间运行的…

HTB:CozyHosting[WriteUP]

目录 连接至HTB服务器并启动靶机 1.How many TCP ports are open on CozyHosting? 2.The webserver on TCP port 80 issues a redirect to what domain? 3.What relative path on the webserver returns a 500 error? 4.What is the Java web framework used in the we…

初识算法 · 二分查找(4)

目录 前言&#xff1a; 寻找峰值 题目解析 算法原理 算法编写 寻找旋转排序数组中的最小值 题目解析 算法原理 算法编写 寻找缺失的数字 题目解析 算法原理 算法编写 前言&#xff1a; ​本文的主题是二分查找&#xff0c;通过三道题目讲解&#xff0c;一道是寻找…

【Web开发】什么是Nuxt? 利用Nuxt快速搭建前端项目

Nuxt官网&#xff1a;https://nuxt.com/ 启动一个Nuxt项目 在vscode的项目文件终端运行以下命令&#xff1a; npx nuxilatest init <my-app>npm installnpm run dev然后就启动了一个Nuxt项目 安装Nuxt UI Nuxt UI官网&#xff1a;https://ui.nuxt.com/ npx nuxilates…

线程的同步

目录 引入 认识条件变量 快速认识接口​编辑 认识条件变量​编辑 测试代码​编辑 生产消费模型 为何要使用生产者消费者模型 理解 编写生产消费模型 BlockingQueue 单生产单消费 多生产多消费 引入 同步&#xff1a;在保证数据安全的前提下&#xff0c;让线程…

Hugging Face HUGS 加快了基于开放模型的AI应用的开发

在过去一年左右的时间里&#xff0c;开源人工智能模型在性能上已经明显赶上了 OpenAI、Google 和其他公司的流行闭源模型。 然而&#xff0c;由于在不同硬件上部署和维护这些模型所带来的开销&#xff0c;开发人员尚未广泛采用这些模型。为了解决这个问题&#xff0c;Hugging F…

【Unity】Unity中文本中插入超链接且可点击响应,TextMeshPro的进阶用法

一、需求和尝试 今天遇到这样一个需求&#xff1a;在文本中插入超链接&#xff0c;且这个链接可以点击跳转对应的url&#xff0c;具体形式如下图所示。 其实这个有一个简单粗暴的方法&#xff0c;就是把需要加超链接的文本单独拿出来&#xff0c;和其他文本进行拼接&#xf…

修改huggingface的缓存目录以及镜像源

执行以下语句查看当前配置 huggingface-cli env默认输出应该如下 (py39-transformers) PS D:\py_project\transformers_demo> huggingface-cli envCopy-and-paste the text below in your GitHub issue.- huggingface_hub version: 0.26.1 - Platform: Windows-10-10.0.22…

面向垂类场景的智能化低代码引擎

背景介绍 在通信领域中&#xff0c;不同客户的数字化场景存在多种个性化大屏的定制需求&#xff0c;常见业务范围涵盖政务、金融、教育、工业、传媒、互联网等行业领域。然而&#xff0c;面对如此巨大的产业痛点诉求&#xff0c;传统低代码领域却存在数据监控粒度不统一、定制化…

学习docker第三弹------Docker镜像以及推送拉取镜像到阿里云公有仓库和私有仓库

docker目录 1 Docker镜像dockers镜像的进一步理解 2 Docker镜像commit操作实例案例内容是ubuntu安装vim 3 将本地镜像推送至阿里云4 将阿里云镜像下载到本地仓库5 后记 1 Docker镜像 镜像&#xff0c;是docker的三件套之一&#xff08;镜像、容器、仓库&#xff09;&#xff0…

基于SpringBoot+Vue+MySQL的实践性教学系统

系统展示 用户前台界面 后台界面 系统背景 随着信息技术的快速发展&#xff0c;企业对于高效、智能的管理系统需求日益迫切。传统的管理系统大多采用单机版或C/S架构&#xff0c;存在操作复杂、维护困难、数据共享性差等问题。而基于SpringBootVueMySQL的全栈管理系统&#xff…