将特定文件的更改转移到新分支

时间:2021-01-08 16:01:57

标签: git git-rebase

我有 186 次提交,现在想将对其中两个文件所做的更改拆分到一个单独的分支中。我更改了其他 38 个文件(“非实验性”更改),并试图找出更改的内容和原因。这两个文件是没有依赖关系的配置文件,是在这个特性分支的开头添加的,组成了大部分提交,因此应该可以在新分支中隔离它们。

我可以将它们全部变基并压缩,然后它们将文件隔离在一个单独的提交中(reset --mixed 然后仅暂存这些文件),但我还没有准备好丢失整个历史记录 - 我正在尝试查看功能分支中非实验文件的历史记录。

我一直在尝试创建一个新分支并隔离“非实验性”更改。我试过的任何东西都不是自动的,它总是被手动踢出。

当我尝试时:

exec git rm C:/Experiment/Folder -r; git commit --amend --no-edit --allow-empty

rebase 将不再提示文件被编辑和删除存在冲突。

当我尝试时:

exec echo '' > C:/Experiment/Folder/File1.txt; 
  echo '' > C:/Experiment/Folder/File2.txt; 
  git commit -a --amend --no-edit --allow-empty

rebase 不再说它有冲突的编辑。

是否有一种自动化或大部分自动化的方法来做到这一点,而不是访问每个提交并手动拆分,然后重新排序所需的提交?

如果不清楚

我有这个:

* 76282bb4 (HEAD -> feature) Changed a.config
* fd1d5045 Changed a.config, b.config
* ec89d65a Changed b.config
* ba9199c2 Changed b.config
* 63d9197c Changed b.config, otherfile1.code
* 6133901d Changed a.config, otherfile3.code
* 48c66eff Changed a.config
* 39ee846f Changed a.config, b.config, otherfile1.code
* 54bbc5d1 Changed a.config, b.config
* 9113dbc7 Changed a.config, b.config
* babc1b65 Changed a.config, b.config
* ff627343 Changed a.config, b.config, otherfile1.code
* 1e6e67d5 Changed a.config, b.config
* ea98ea6f Changed a.config, b.config
* 67eecb9d Changed a.config, b.config, otherfile1.code
* 7d3fecc9 Changed a.config, b.config
* 75ad7ec7 Changed a.config, b.config
* 00a7c690 Changed b.config
* 834f64d3 Changed b.config
* e5989e3f Changed b.config
* 67b76c05 Changed b.config, otherfile2.code
* 99983077 Changed b.config
* df5a9112 Changed b.config
* b31a087d Changed b.config
* 684c4ade Changed b.config
* 00a2caf4 Changed a.config, b.config, otherfile1.code
* 4e597f2a Changed a.config
* 6516a036 Changed a.config
* d630d151 Changed a.config
* 8c475f53 Changed a.config
* 0c96e050 Changed a.config, b.config
* 51767ed3 Changed a.config, otherfile1.code
* 941f4690 Changed a.config
* a4172529 Changed a.config, b.config
* 734ea51f Changed a.config, b.config
* 0f85b9a1 Changed a.config, b.config
* deb9b8fe Changed a.config, b.config
* e7092fd9 Changed b.config
* ec9a6ab1 Changed b.config
* a0c9ef56 Changed b.config, otherfile1.code
* 9fbed040 Changed b.config
* 6c774f0a Changed b.config
* c1641dc5 Changed b.config, otherfile1.code
* 198982b1 Changed b.config
* ce780154 Changed a.config
* 862f18a3 Changed a.config
* 0159374c Changed a.config
* 43cd70fb Changed a.config, b.config, otherfile2.code
* a5ce4c92 Changed a.config

我想看这个:

* 63d9197x Changed otherfile1.code
* 6133901x Changed otherfile3.code
* 39ee846x Changed otherfile1.code
* ff62734x Changed otherfile1.code
* 67eecb9x Changed otherfile1.code
* 67b76c0x Changed otherfile2.code
* 00a2cafx Changed otherfile1.code
* 51767edx Changed otherfile1.code
* a0c9ef5x Changed otherfile1.code
* c1641dcx Changed otherfile1.code
* 43cd70fx Changed otherfile2.code

0 个答案:

没有答案