Очистка ветки Git от ненужных коммитов и посторонних веток - PullRequest
1 голос
/ 20 февраля 2020

repo tree

Как мне избавиться от всего и остаться только с последним коммитом внизу? Все после a28fe12 расходуется.

Я пытался использовать git rebase и git reset HEAD~n, как я делал сотни раз, но кажется, что что-то напутало на пути, и я оказался в и я получаю «чистое» состояние с мастер-веткой.

git reset --hard cd3a8cb дает следующий результат:

repo tree

Заранее спасибо за помощь.

Ответы [ 2 ]

1 голос
/ 21 февраля 2020

Вы сделали это локально. Теперь вам нужно отправить sh в удаленные репозитории.

origin/master и jvk-github/master показывают, где находится ветвь master в удаленных репозиториях origin и master . в прошлый раз вы смотрели . Если у вас git fetch origin и git fetch jvk-github, вы получите обновленный вид.

Вам нужно сделать sh обновление для этих пультов. git push --force-with-lease origin и git push --force-with-lease jvk-github. --force-with-lease безопаснее --force.

Однако это означает потерю всех остальных коммитов, включая добавление скриншотов и удаление избыточных зависимостей. Похоже, что только origin/master испортился, возможно, в результате некоторой комбинации перебазирования и вытягивания.

jvk-github/master кажется нормальным. Вместо этого я бы предложил переместить вашего мастера на jvk-github/master и толкнуть его на origin.

git checkout master
git reset --hard jvk-github/master
git push --force-with-lease origin master

Наконец, чтобы предотвратить подобные проблемы, я рекомендую вытягивать с rebase. По умолчанию git pull - это git fetch плюс git merge. Это может привести к дублированию, если ветвь была перебазирована после нажатия, как, кажется, произошло с origin/master.

Вместо этого обновите с git pull --rebase. Ваша локальная работа будет перебазирована поверх удаленной работы. Я рекомендую установить это значение по умолчанию, установив pull.rebase = merges.

0 голосов
/ 20 февраля 2020

git reset --hard cd3a8cb сбросит вашу ветку до первого коммита. Все выше этого будет отброшено.

...