эти коммиты(с прошлой задачи потерялись при закрытии пулл реквеста) засунул в отдельную ветку и отправил на ревью. Сейчас делаю другую задачу, пушу в новую ветку коммит, но оказывается вместе с нужным коммитом тянутся еще 4 ненужных для этой ветки коммита. Что делать?
Если в ветке пишу git status - то ничего не происходит
Если dev ветке пишу git status, то пишет, что я опережаю изменения
Попросту убрать эти коммиты из ветки с текущей задачи? Просто когда я пишу git checkout dev, git pull, то лишние коммиты тянутся в каждую новую ветку
Да. Я лично привык делать это интерактивным рибейсом. Также это можно сделать рибейсом обычным. Или удалением ветки, пересозданием ее с нужного момента (dev~4) и черрипиком нужных коммитов
А вообще такая проблема у меня будет до тех пор, пока эти потерянные 4 коммита не смёржат в дев?
Такая проблема будет до тех пор, пока вы будете создавать новые ветки от локального дева, опережающего дна ремоутный. Если вы те 4 коммита перенесли в особую ветку, скорее всего вы хотите удалить их из локального дева
Ну да, я просто создал новую ветку, и без всяких изменений написал git push, чтобы эти коммиты улетели в github и создал пулл реквест. Но когда я переключаюсь на дев, то эти коммиты есть. После того, как я запушил их отдельным пулл реквестом я с локального дева их могу убрать и все будет окей, как я понял?
После убирания их из локального дева все новые ветки будут создаваться ожидаемым образом. Но с веткой с новой фичей (в которой 4 коммита +1) их нужно убрать вручную.
Да там задача на одну строку, мне не принципиально, можно и пересоздать. Хорошо, понял, спасибо) Сейчас посмотрю, как их убрать безопасно, а то помню я вроде написал reset —hard head~1 или что-то такое и у меня актуальный код улетел от незнания)
При использовании деструктивных команд безвозвратно теряется только незакоммиченные правки. Всё закоммиченное содержится в рефлогах и можно восстановить.
Я правильно понял, что мне вот так нужно сделать git reset —hard head~4 чтобы убрать 4 последних коммита? В таком случае мне не стоит посмотреть в git log, не уберу ли я там лишнего или уберутся именно эти зависшие коммиты? Просто если я смотрю в git log, то там нет тех зависших коммитов, возможно они были давно(относительно новых коммитов, оставленных не мной)
Если у вас состояние дева до сих пор вот такое (с 4 ненужными коммитами), то команда их уберет. Если у вас состояние другое, то и команда будет другой.
Да, такое состояние
Обсуждают сегодня