Как удалить всю историю чего-либо в любом филиале, но файлы, существующие в настоящее время на HEAD (моя главная ветка)?Как удалить историю Git чего-либо, кроме текущих файлов
Я делал такие вещи, как
git filter-branch -f --prune-empty --index-filter \
"git rm -rf --cached --ignore-unmatch '*.js' '*.html' '*.css'" \
HEAD
, но это становится утомительным, так как я должен сделать явным то, чтобы удалить, не то, чтобы держать.
Git в принципе должен быть в состоянии определить всех предков текущих файлов, вернуться в историю и удалить все, что не принадлежит предкам. Как?
Я сдался: все это переписывание истории кажется очень хрупким и беспорядочным. Это отстой. Я просто копирую файлы и кусаю пулю потери истории.
Просто из любопытства: зачем это нужно? Это кажется довольно необычной идеей. – sleske
Почему бы вам просто не сгладить историю с помощью rebase? Вместо того, чтобы искажать историю, просто избавляй ее от своих страданий. –
@ dan-d: Все дело в том, чтобы сохранить историю файлов сейчас в HEAD. В противном случае я мог бы просто создать новое репо с нуля и скопировать файлы. Или я понимаю неправильно? – oberstet