До тех пор, пока вы считаете, что полная потеря истории не является проблемой, подход, предложенный Ajay, совершенно применим. Но если вы хотите сохранить историю своего мелкого клона, у меня есть другое предложение.
неглубокий клон притворяется, чтобы иметь полную историю с помощи так называемый graft point подделать родитель из «первых» совершить.
Если мы предположим, что мы имеем полную историю доступной, мы могли бы перефразировать вопрос: How can I throw away the history before a specific revision?
Это означает, что мы можем использовать комбинацию точки трансплантата и git filter-branch
(как это было предложено в связанном вопросе). Однако вы должны заметить, что это перепишет вашу полную историю, сделав новую, несовместимую с удаленным, с которого мы первоначально клонировали. Из-за этого мы должны удалить старый удаленный из нашего репозитория.
git remote remove <old-remote-name>
Теперь мы можем начать наш переписывать. Предположим, что мы хотим, чтобы текущий мастер зафиксировал новый корень для репозитория.
git rev-parse --verify master >> .git/info/grafts
git filter-branch -- --all
Это будет переписать всю историю нашего репозитория, с текущим мастер фиксации в качестве нового корня. Вы можете завершить переписывание, удалив «резервные» ссылки в refs/original
. Кроме того, вы можете удалить файл .git/shallow
.
После того, как вы это сделали, вы сможете нажать на историю незарегистрированных на вашем новом пульте дистанционного управления.
Это, скорее всего, удалит все подмодули. –
@AleksanderAlekseev, о каких подмодулях вы говорите? – Willa
Если вам не нужна история, это самое простое исправление. – Willa