git创建一个新分支,只保留原有分支的文件而不保留其提交历史

要创建一个新分支,只保留原有分支的文件而不保留其提交历史,可以通过以下步骤完成。这种做法实质上是在新分支上重新开始一个干净的提交历史,但保留了工作目录中的文件状态。

  1. 确保工作目录是干净的:首先,确保你的工作目录没有未提交的更改。可以使用git status来检查。如果有未提交的更改,请先提交或暂存这些更改。

    git status
    

    如果工作目录不干净,可以暂存更改并提交:

    git add .
    git commit -m "临时保存工作进度"
    
  2. 创建并切换到新分支:使用git checkoutgit switch(Git 2.23及以上版本)命令创建并切换到一个新的分支。这里以git switch为例,如果你的Git版本较低,请使用git checkout -b 新分支名

    git switch -c 新分支名
    
  3. 删除新分支上的所有提交:一旦在新分支上,可以通过创建一个“孤儿”分支(一个没有父提交的分支)来去除所有先前的提交记录,但这需要一些步骤来保留当前的文件状态。

    首先,使用下面的命令创建一个孤儿分支:

    git checkout --orphan temp-branch
    

    这会创建一个名为temp-branch的新分支,其中不包含任何提交历史。然而,工作目录和暂存区的状态会被保留下来。

  4. 添加所有文件并提交:由于工作目录的状态被保留下来了,你现在可以添加所有文件到暂存区,并提交它们到这个全新的分支中。

    git add .
    git commit -m "初始化提交"
    
  5. [可选] 删除旧分支:如果你不再需要旧的分支,可以将其删除。注意,这会永久删除旧分支的提交历史,请确保你不会丢失任何重要信息。

    git branch -D 旧分支名
    
  6. [可选] 重命名孤儿分支:如果你想要将这个孤儿分支重命名回你想要的名字,首先需要切换到另一个分支,然后删除原来的新分支,最后将孤儿分支重命名。

    git switch main  # 切换到另一个分支
    git branch -D 新分支名  # 删除原新分支
    git branch -m temp-branch 新分支名  # 将temp-branch重命名为新分支名
    

通过以上步骤,你可以在新分支上开始一个干净的提交历史,同时保留了文件的当前状态。这对于重置项目历史或将项目拆分为多个子项目时非常有用。

相关推荐

  1. git创建分支

    2024-03-21 07:26:05       31 阅读
  2. Git-如何基于某个tag创建一个分支

    2024-03-21 07:26:05       29 阅读
  3. git 基于当前分支创建分支

    2024-03-21 07:26:05       35 阅读
  4. git 怎么让一个文件提交

    2024-03-21 07:26:05       26 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-21 07:26:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-21 07:26:05       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-21 07:26:05       82 阅读
  4. Python语言-面向对象

    2024-03-21 07:26:05       91 阅读

热门阅读

  1. 【 React 】 在React项目中是如何使用Redux的?

    2024-03-21 07:26:05       42 阅读
  2. React——props children (插槽平替)

    2024-03-21 07:26:05       41 阅读
  3. 全量知识系统 概要设计(SmartChat回复)

    2024-03-21 07:26:05       50 阅读
  4. webRtc麦克风摄像头检测

    2024-03-21 07:26:05       41 阅读
  5. 为prj添加kconfig支持

    2024-03-21 07:26:05       45 阅读
  6. 力扣_动态规划4—最大正方形

    2024-03-21 07:26:05       38 阅读
  7. Redis的五种数据类型与常用命令示例

    2024-03-21 07:26:05       43 阅读
  8. k8s污点去除

    2024-03-21 07:26:05       37 阅读
  9. kafka流式处理中aggregate()方法--笔记

    2024-03-21 07:26:05       40 阅读