当前位置: 首页 > news >正文

Git专栏篇

一、基础知识

二、常用手段

1. 复制其他提交到本分支

目的:现有git仓库,该仓库有两个分支a和b,将a分支的最近三个版本提交内容复制 到b分支的提交上。

在 Linux 系统中,你可以按照以下步骤将分支 A 的最近三个版本的提交内容复制到分支 B 的提交上:

  1. 切换到分支 B:打开终端,并进入你的 Git 仓库所在的目录。然后使用以下命令切换到分支 B:

    git checkout b
    
  2. 查看分支 A 的最近三个提交:使用以下命令查看分支 A 的最近三个提交的 commit ID:

    git log --oneline a -n 3
    

    这将会显示分支 A 的最近三个提交及其对应的 commit ID。

  3. 将分支 A 的提交复制到分支 B:使用以下命令将分支 A 的最近三个提交复制到分支 B:

    git cherry-pick <commit_id_1> <commit_id_2> <commit_id_3>
    

    在上述命令中,将 <commit_id_1><commit_id_2><commit_id_3> 替换为分支 A 最近三个提交的 commit ID。这将会将这三个提交的更改应用到分支 B 上。

请注意,在执行 git cherry-pick 命令之前,确保你已经在分支 B 上,并且已经完成了所有必要的合并和冲突解决。此外,cherry-pick 操作可能会导致提交的 SHA-1 值发生变化,因此在将更改应用到另一个分支之后,你可能需要进行相应的调整和处理。

在进行任何 Git 操作之前,请确保备份重要的代码和数据,以防止意外情况的发生。

注意:当两者基础代码框架不同时,可能cherry-pick不成功,需要手动修改。

2. git show版本,不看具体修改,只看文件名称

你可以使用 --name-only 选项来查看 Git 中某个版本中所修改、添加或删除的文件列表。这个选项会在 Git 显示提交信息和更改内容之前,先显示出所涉及的文件列表。

以下是一个示例:

git show --name-only <commit_id>

其中 <commit_id> 是要查看的提交的 SHA-1 标识符。执行这个命令后,Git 会显示出指定提交所涉及的所有文件名称。

需要注意的是,如果一个提交中修改了多个文件,这个命令会将这些文件名全部列出,每个文件名占一行。

另外,如果想查看某个提交中详细的修改内容,可以使用 git show <commit_id> 命令,这个命令会显示指定提交的详细信息,包括作者、提交时间、提交说明和更改内容等。如果只想查看某个文件的修改历史,可以使用 git log <file_path> 命令来查看。

3. .gitignore忽略文件或目录

.gitignore 是一个文本文件,作用是指定 Git 控制系统需要忽略的文件或目录。在创建 .gitignore 文件时,你可以指定要忽略的文件、文件夹或者正则表达式。

以下是一些常见的 .gitignore 规则:

  • 忽略文件夹:/folder/
  • 忽略特定文件:file.txt
  • 忽略所有 .txt 文件:*.txt
  • 忽略以 tmp 开头的文件:tmp*
  • 忽略以 ~ 结尾的文件:*~
  • 忽略所有 .log 文件:*.log
  • 忽略所有 .zip 文件:*.zip

如果你想忽略所有的 .log.zip 文件,你可以在 .gitignore 文件中添加以下内容:

*.log
*.zip

如果你想忽略某个文件夹中的所有文件(包括子文件夹中的文件),你可以在 .gitignore 文件中添加以下内容:

folder/

如果你只想忽略某个文件夹中的特定文件,你可以使用以下规则:

folder/file1.txt
folder/file2.txt

如果你想忽略所有的 .tmp 文件和以 ~ 结尾的文件,你可以在 .gitignore 文件中添加以下内容:

*.tmp
*~

需要注意的是,.gitignore 文件只会影响未被添加到 Git 中的文件。如果某个文件已经被添加到 Git 中,那么即使在 .gitignore 文件中指定忽略该文件,Git 仍然会对该文件进行版本控制。

http://www.lryc.cn/news/275795.html

相关文章:

  • Java-字符串-String类
  • ubuntu安装docker指定版本
  • 说一下 jsp 的 4 种作用域?
  • 性能分析与调优: Linux 使用ELRepo升级CentOS内核
  • 【【RTC实时时钟实验 -- 在HDMI上显示-FPGA 小实验】】
  • Flutter 图片和资源的高效使用指南
  • RedisTemplate 怎么获取到链接信息?怎么获取到所有key?怎么获取指定key?
  • 【Unity】动态申请权限
  • tp8/6 插件PhpOffice\PhpSpreadsheet导入表格
  • Android studio VideoView 应用设计
  • Python基础(十八、文件操作读取)
  • Mac 16g约等于Windows多少g?
  • 快麦ERP退货借助APPlink快速同步CRM
  • springMVC获取请求参数的方式
  • android常用方法
  • Linux内核--网络协议栈(一)Socket通信原理和实例讲解
  • Spring事务(2):声明式事务管理案例-转账(xml、注解)
  • NACHI机器人模拟示教器如何切换中文
  • 用通俗易懂的方式讲解:使用 Mistral-7B 和 Langchain 搭建基于PDF文件的聊天机器人
  • 综合智慧能源监测管理平台,实现能源管理“透明”化
  • 【大数据进阶第三阶段之Datax学习笔记】使用阿里云开源离线同步工具DataX 实现数据同步
  • kotlin chunked 和 windowed
  • C语言光速入门笔记
  • Flutter+Go_Router+Fluent_Ui仿阿里网盘桌面软件开发跨平台实战-买就送仿小米app开发
  • 内联函数的作用
  • Simpy简介:python仿真模拟库-02/5
  • Kafka高级应用:如何配置处理MQ百万级消息队列?
  • LIN总线学习笔记(1)-总线传输规范
  • Qt界面篇:Qt停靠控件QDockWidget、树控件QTreeWidget及属性控件QtTreePropertyBrowser的使用
  • H266/VVC网络适配层概述