Ответ 1
Если на комманде нет ссылки, она будет удалена с помощью git сбор мусора во времени.
Если вы хотите принудительно выполнить его перед рукой, используйте git gc --prune=now --aggressive
У меня есть локальная фиксация, которая не находится в какой-либо ветке, которую я бы хотел удалить. Я не хочу их переустанавливать, я действительно хочу удалить их и потерять весь контент, связанный с этим фиксацией.
Это их команда для этого?
До сих пор я пробовал интерактивную переустановку, как многие предлагали, но она просто перемещает фиксацию, она не удаляет их. Я также пытался использовать reflog delete, но я не могу понять, как передать конкретный идентификатор commit в команду.
Здесь рабочее дерево:
o [master] Commit #6
|
o Commit #5
|
| o Commit #4
|/
o Commit #3
|
o Commit #2
|
o Commit #1
Я хочу физически удалить commit # 4.
Если на комманде нет ссылки, она будет удалена с помощью git сбор мусора во времени.
Если вы хотите принудительно выполнить его перед рукой, используйте git gc --prune=now --aggressive
Чтобы удалить фиксацию, вам просто нужно убедиться, что она больше не является частью какой-либо ветки. То есть для каждой ветки в вашем репозитории убедитесь, что плохая фиксация не является частью цепочки цепочек от дочернего до родителя, определяющей эту ветку. Если вы найдете такую ветвь, либо удалите ее, либо измените ее историю, чтобы она больше не включала плохую фиксацию.
Как только это правда, плохая фиксация будет в конечном итоге собрана в мусор.