Перенаправлять изменения определенных файлов в новую ветку

#git #git-rebase

#git #git-перебазирование

Вопрос:

У меня 186 коммитов, и теперь я хотел бы разделить изменения, внесенные в два из этих файлов, на отдельную ветку. Я изменил 38 других файлов («неэкспериментальные» изменения) и пытаюсь найти, что и почему они были изменены. Эти два файла являются конфигурационными файлами без зависимостей, были добавлены в начале этой ветки функций и составляют большую часть коммитов, поэтому должна быть возможность изолировать их в новой ветке.

Я мог бы перебазировать и раздавить их все, а затем изолировать файлы в одном отдельном коммите ( reset --mixed затем поместить только эти файлы), но я не готов потерять всю историю — я пытаюсь просмотреть историю неэкспериментальных файлов в ветке функций.

Я пытался создать новую ветку и изолировать «неэкспериментальные» изменения. Ничто из того, что я пробовал, не автоматизировано, оно всегда выбрасывается как ручное.

Когда я попытался:

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

перебазирование перестанет говорить о наличии конфликта, что файл был как отредактирован, так и удален.

Когда я попытался:

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

перебазирование перестает говорить, что у него конфликтующие изменения.

Существует ли автоматический или в основном автоматизированный способ сделать это, за исключением посещения каждого коммита и разделения вручную, а затем изменения порядка необходимых?

Если это не ясно

У меня есть это:

 * 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
 

Комментарии:

1. почему бы вам просто не создать новую ветку, а затем просто удалить «экспериментальные файлы» в существующей?

2. Вероятно, вы получите конфликт слияния, когда / если вы объедините их обратно, но это должно быть легко исправить

3. Как это поможет мне увидеть историю других файлов? Это все равно будет проблемой с иголкой в стоге сена.

4. что означает «просмотр истории других файлов»? у всех «экспериментальных файлов» все еще будет их история.

5. Обновлено сообщение о 38 других «неэкспериментальных» файлах. Я хочу понять, почему мы внесли эти изменения, прежде чем сжимать и нажимать мой коммит.