Q

我的开发工作都在 master 分支上做的,master 分支有很多的开发的时候产生的临时文件。我想清空 master 分支的历史记录。并且只保留 README.md 和 main.py

A

你可以通过以下步骤清空 master 分支的历史记录,只保留 README.mdmain.py 文件:

步骤 1: 创建一个干净的分支

首先,确保你在 master 分支,并提交所有未保存的工作。

git checkout master
git add .
git commit -m "Save all work before cleaning history"

步骤 2: 创建一个新的空分支

接下来,创建一个新的空分支来开始清理历史。

git checkout --orphan clean-branch

--orphan 创建一个没有历史记录的分支。

步骤 3: 移除所有文件并保留需要的文件

现在删除所有文件,但保留 README.mdmain.py

git rm -rf .
git checkout master -- README.md main.py

这会删除项目中的所有文件,然后从 master 分支中恢复 README.mdmain.py

步骤 4: 提交新的分支

然后提交这些更改。

git add README.md main.py
git commit -m "Clean history, only keep README.md and main.py"

步骤 5: 强制更新 master 分支

接下来,将这个新的干净分支强制推送到 master 分支,替换它的历史记录。

git checkout master
git reset --hard clean-branch
git branch -D clean-branch

步骤 6: 强制推送到远程仓库

如果你需要将清理后的 master 分支推送到远程仓库,你需要使用 --force 参数。

git push origin master --force

这样,历史记录将被清空,只保留 README.mdmain.py 文件。

注意

  • 强制推送会影响其他开发人员的本地仓库,他们可能需要重新克隆项目。
  • 请谨慎使用,因为一旦推送到远程仓库,历史记录将无法恢复。

chatGPT:清理 master 分支的文件,并让这个分支只有一个提交的更多相关文章

  1. git从其他分支提取文件merge到当前分支

    git checkout A -- [a.go b.go]将A分支中的a.go, b.go两文件合并到当前分支注意:会将当前分支的对应文件强行覆盖

  2. git---怎样将分支上的一个单文件合并到主分支上(master)

    一.首先切换到主分支  注意将分支上的数据全部提交 以免造成数据冲突或丢失 git checkeout master 二.选择要合并的文件 git checkout --patch 分支名称  要合并 ...

  3. 在dev分支上修改了文件,但是并没有执行git add. 和git commit命令,然后切换到master分支,仍然能看到dev分支的改动现象

    当我们创建一个新的分支dev,并且在新分支上修改了原文件,在我们没有提交到仓库的前提下,将分支再切换到master分支上,执行git status ,可以看到dev操作的状态: (1)因为未add的内 ...

  4. git合并指定文件到另一分支

    经常被问到如何从一个分支合并特定的文件到另一个分支.其实,只合并你需要的那些commits,不需要的commits就不合并进去了. 合并某个分支上的单个commit 首先,用git log或sourc ...

  5. 使用WICleanup清理Windows Installer 冗余文件

    使用WICleanup清理Windows Installer 冗余文件 | 浏览:816 | 更新:2015-11-02 10:43 | 标签:Win7 Win10 1 2 3 4 5 6 7 分步阅 ...

  6. SaltStack 模块学习之拷贝master服务器上文件和目录到minion服务器

    一. cp.get_file实现从master端复制文件到minion服务器的文件中cp.get_file 1. 修改/etc/salt/master ,指定server 工作的根目录   file- ...

  7. git 将master分支合到自己的开发分支

    背景: 一般开发自己的分支都是从最新的master上拉取,但中间master会有改动,此时需要将最新的master合到自己的分支中 命令: 1. 查看当前的分支,星号标识为当前分支:(如果查询结果有m ...

  8. git 如何把master分支代码合并到自己的分支

    master分支的代码领先自己的分支,git 如何把master分支代码合并到自己的分支 1.首先切换到主分支 git checkout master 2.使用git pull 把领先的主分支代码pu ...

  9. git push -u origin master和git push <远程主机名> <本地分支名>:<远程分支名>作用

    git push git push命令用于将本地分支的更新,推送到远程主机.它的格式与git pull命令相仿. $ git push <远程主机名> <本地分支名>:< ...

  10. eclipse git 文件状态 及git分支的创建与合并与删除

    eclipse里面Git文件状态及图标展示   EGit会出现如下图标,其对应状态及意义如下:      1)忽略[ ignored ]:仓库认为该文件不存在(如bin目录,不需要关注).通过右键Te ...

随机推荐

  1. Tinyfox 简易教程之:Hello World!

    一,什么是 Tinyfox: Tinyfox 是一款自带 HTTP 服务器的以 WebApi.WebSocket 及"动态HTML"为核心功能的超轻量级的独立性极强的高性能 Web ...

  2. kickstart和PXE安装

    Kickstart安装Kickstart是一种无人值守的安装方式如果在安装过程中出现要填写参数的情况,安装程序首先会去查找Kickstart生成的文件,如果找到合适的参数,就采用所找到的参数:如果没有 ...

  3. V-Control:一个基于 .NET MAUI 的开箱即用的UI组件库

    前言 今天大姚给大家分享一个基于 .NET MAUI 的开源免费.开箱即用的UI组件库:V-Control. V-Control项目介绍 V-Control 是一个适用于 .NET MAUI 的开源( ...

  4. 探秘Transformer系列之(5)--- 训练&推理

    探秘Transformer系列之(5)--- 训练&推理 0x00 概述 Transformer训练的目的是通过对输入源序列和模型输出序列的学习,来拟合真正的目标序列.推理的目的则是仅通过输入 ...

  5. 【COM3D2Mod 制作教程(2)】Mod 底层原理

    [COM3D2Mod 制作教程(2)]Mod 底层原理 Mod 是什么? Mod 一词想必你已经听过很多次了,因为很多游戏都可以装 Mod,而 Mod 可以为游戏增添一些额外的乐趣.但在 COM3D2 ...

  6. 使用Bioaider进行本地blast

    系统环境为windows11 1. 下载blast程序 https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/ 双击安装,记住自己的 ...

  7. 『Python底层原理』--Python字符串的秘密

    在现代编程中,字符串是不可或缺的数据类型. 无论是处理用户输入.文件读写还是网络通信,字符串都扮演着核心角色. 然而,字符串的处理并非简单地将字符拼接在一起,它涉及到字符集.编码以及编程语言的底层实现 ...

  8. 谷歌 Chrome 浏览器离线安装 vue devtools 插件

    由于某些原因,Chrome 应用商店访问不了,所以只能离线安装 vue devtools 插件,离线安装也有两种方法. 方法一:自编译 vue devtools 插件 这方法要求动手能力强的同学. 前 ...

  9. 浅说树形dp

    @ 目录 前言 树形dp的转移方式 树形dp的使用的场景 小结 初步感知--简单的树形dp 例题1 例题2 深入分析--树形dp的经典模型 最大独立集 最小点覆盖 最小支配集 树上直径 前言 因为树的 ...

  10. ESX与ESXi区别

    VMware ESXi 与ESX 产品之比较 VMware vSphere 5.0 以后版本,所有底层虚拟化产品都改为ESXi产品,本文主要比较了ESXi与ESX的各自特点,以便对大家是否要把现有的E ...