Как я могу очистить свое git-репо и правильно структурировать его, не теряя при этом никакого контента - PullRequest
0 голосов
/ 21 июня 2019

Я столкнулся с ситуацией, когда у меня уже есть удаленный репозиторий с мастер-веткой и некоторыми функциональными ветвями, и некоторые из моих коммитов также перенесены на удаленный, теперь локально также я создал еще несколько веток, но изменения в этих локальных ветвях не выдвигаются к удаленному.

Теперь из-за некоторых требований мне нужно реструктурировать репозиторий, и мне нужно поддерживать свой мастер в чистоте с помощью только readme, а затем перемещать все коммиты в ветке master в другую ветвь, а также сохранять мои локальные коммиты и ветки, поэтому что я могу подтолкнуть их после этой очистки.

Я не уверен, как я могу это сделать без потери данных.

1 Ответ

1 голос
/ 21 июня 2019

Вы можете создать "главную резервную копию" ветки, используя

git checkout -b backupMaster

в своей главной ветке.

Вы можете удалить коммит, который вы хотите, в главной ветви, используя

git checkout master
git reset --hard HEAD~x 

X должен быть номером коммита, который вы хотите удалить.

Используйте

  git push origin master --force-with-lease

для обновления вашего источника / мастера с вашим локальным переустановленным мастером.

Ваш мастер теперь будет чист в локальном и удаленном режиме, НО, если некоторые нежелательные коммиты, которые вы вернули на мастер, все еще присутствуют в другой ветке, вам придется отменить их в других ветках, если вы не хотите приноситьих обратно при объединении.

https://git -scm.com / docs / git-checkout

https://git -scm.com / docs / git-reset

https://git -scm.com / docs / git-push

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...