Насколько я вижу, git pull someRemote master
пытается объединить удаленную ветку в шахту.Могу ли я сказать git pull для перезаписывания вместо слияния?
Есть ли способ сказать: «Полностью отбросьте мои вещи, просто сделайте мне еще один клон пульта», используя git pull? Я все еще хочу сохранить свой собственный репозиторий и сохранить его в истории, но после этой команды я хочу получить 1: 1 копию основной ветки someRemote.
Чтобы уточнить, представьте, что есть 2 хранилища, RM и MY. Числа совершаются, и это предполагает только одну ветвь (мастер).
RM1 --- RM2 --- RM3 --- RM4 --- RM5 --- RM6 ... | | +-> MY1 --- MY2 --- MY3 -+-> MY4 --- MY5 --- MY6 ...
Поэтому я начинаю свой собственный репозиторий как клон RM1. Затем я развиваюсь счастливо, и RM развивается счастливо, но мы никогда не разделяем нашу работу. После MY3 я понимаю, что моя ветка не так уж полезна, но RM4 довольно хорош. Поэтому я хочу, чтобы git pull
RM4 в MY. Тем не менее, я не хочу, чтобы мои изменения в MY1-3 сохранялись, я хочу, чтобы MY4 был 1: 1 копией RM4.
Однако я хочу сохранить свою историю, в идеале я хотел бы иметь набор изменений между MY3 и RM4 или между MY3 и RM2-4.
Он все равно должен оставаться моим хранилищем.
Возможно ли это?
(Это для проектов GitHub, где я могу разветвить проект, немного экспериментировать, оставить его в покое на несколько недель, но затем обновить его, не сохраняя изменений. В настоящий момент я удаляю свою вилку и перекрики , что не является наилучшим подходом.)
В основном я должен наносить урон моей ветке? Есть ли способ, чтобы git magically объединил изменения, чтобы он выглядел как новая ревизия? Я хотел бы сохранить свою ветку и ее историю, я просто хочу, чтобы текущая ревизия была копией текущей версии пульта 1: 1. Или это все еще будет работать, и новый мастер делится историей со старым мастером? –
@ Майкл: Ваши изменения не исчезнут; они все еще существуют в ветке 'my_old_master'. Ваши цели «1: 1 копия удаленного» и «сохранить мою историю» несовместимы, если вы хотите только одну ветку. Поскольку ревизия SHA1 включает SHA1 всей истории, ветвь не совпадает с другой ветвью, если только * all * история не идентична в обеих ветвях. –
, чтобы заставить это работать, мне пришлось сначала получить удаленный филиал. –