git: удалить привитую ветвь

#git #branch #shallow-clone

Вопрос:

Я столкнулся с проблемой с git. У меня есть неглубокая копия удаленного репо. В моей копии было клонировано две ветви. Там были привиты, т. е. усечены по глубине, поэтому, хотя одна ветвь основана на другой, в моем мелком клоне они независимы. Однажды они были объединены в одну ветвь (посмотрите на график). Таким образом, вторая ветвь (e1a4728..249aeec) больше не нужна в моей мелкой копии. Я сделал git, чтобы не извлекать эту ветвь и не извлекать теги на ней, но я все еще не могу избавиться от коммитов (особенно объектов) из этой ветви.

Примечание: я пытался gc , prune но безуспешно 🙁

 * 38455ea 2021-03-04 | Raise minimum CMake version to 3.16 (HEAD -> master, origin/master) [Nicolas Fella]
* df9117d 2021-08-09 | specify KAboutData::productName() [Michail Vourlakos]
*   949e9c5 2021-08-09 | Merge branch 'v0.10' into master [Michail Vourlakos]
|  
| * e1a4728 2021-08-08 | crash:dont show settings dialog in early startup [Michail Vourlakos]
| * b7188ab 2021-08-06 | update to v0.10.0 [Michail Vourlakos]
| * a1da0ba 2021-07-27 | disable inattention blocked slide-in when no needed [Michail Vourlakos]
| * 1cf1aeb 2021-07-26 | respect indicators iconOffsetX/Y values properly [Michail Vourlakos]
| * edc254d 2021-07-25 | always show/hide applets popups properly [Michail Vourlakos]
| * 170f14c 2021-07-24 | restack applets internal ClickEffect [Michail Vourlakos]
| * 249aeec 2021-07-21 | SVN_SILENT made messages (.desktop file) - always resolve ours (grafted) [l10n daemon script]
* f7032f7 2021-08-08 | crash:dont show settings dialog in early startup [Michail Vourlakos]
* 2f6808b 2021-08-01 | Define new KPackageStructure property in kpackage structures [Alexander Lohnau]
* c02e4b6 2021-08-01 | Consistently name kpackage structures [Alexander Lohnau]
* 71f9e89 2021-07-27 | disable inattention blocked slide-in when no needed [Michail Vourlakos]
* 47702a5 2021-07-26 | respect indicators iconOffsetX/Y values properly [Michail Vourlakos]
* f2c401b 2021-07-25 | always show/hide applets popups properly [Michail Vourlakos]
* d84e50a 2021-07-24 | restack applets internal ClickEffect [Michail Vourlakos]
* 27c6225 2021-07-24 | SVN_SILENT made messages (.desktop file) - always resolve ours [l10n daemon script]
* d600bbe 2021-07-21 | SVN_SILENT made messages (.desktop file) - always resolve ours [l10n daemon script]
* 834f71d 2021-07-17 | major:update LastActiveWindow implementation [Michail Vourlakos]
* 72ff760 2021-07-17 | fix "favorite" icon name typo [Michail Vourlakos]
* e0e3f19 2021-07-16 | pref option to disable geometries broadcasting [Michail Vourlakos]
* 19defa0 2021-07-11 | drop WinTracker::availableScreenGeometry calcs (grafted) [Michail Vourlakos]

 

Ответ №1:

Мне это удалось! Загвоздка заключалась в том, что fetch --depth=10 --update-shallow коммиты загрузки выполнялись с обеих сторон коммита слияния. Поэтому вам нужно либо вручную отредактировать .git/shallow вторую ветвь, чтобы устранить эти фиксации, либо указать такую глубину, чтобы фиксация слияния была последней в вашей истории или вообще отсутствовала.

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

1. Обратите внимание, что на самом деле вы вообще ничего не удалили . Вы просто обновили свой мелкий клон, чтобы он был достаточно мелким, чтобы не видеть ветвления. 🙂 Что, вероятно, и есть то, чего вы хотите…