Ответ 1
Да, создание третьей ветки и выполнение merge -s ours
- это одно из решений.
Но вы найдете все "не рекламировать какую-либо" стратегию слияния" их здесь.
Между заменой вашей работы на другую работу ветки или просто избавлением от текущей работы и ее полной заменой другим, Junio C. Hamano (main Git Maintainer) предпочитает второй подход:
Я думаю, что "
-s theirs
" еще хуже. Это то, как вы отбросили то, что вы сделали (возможно, потому, что другая сторона имеет гораздо лучшее решение, чем ваш хак), но это можно сделать намного проще и чище:$ git reset --hard origin/master
Некоторые люди могут сказать "Но с"
merge -s theirs
", я тоже могу сохранить то, что я сделал". Это reset просто отбрасывает то, что я сделал.Эта логика также ошибочна. Вы можете вместо этого:
$ git branch i-was-stupid $ git reset --hard origin/master
если вы действительно хотите сохранить запись об ошибке.
Одна большая проблема "
-s theirs
" имеет, по сравнению с приведенным выше "reset к происхождению, отбрасывание или отбрасывание неудавшейся истории", состоит в том, что ваша "основная" история, в которой ваша дальнейшая разработка основана на воле держите свою неудачную дерьмо в ней навсегда, если вы сделали "-s theirs" .Надеюсь, с течением времени вы станете лучшим программистом, и в конечном итоге у вас может быть что-то достойное обмена с миром рядом с концом вашей главной ветки. Однако, когда это произойдет, вы не можете предложить свою основную ветку, которую нужно вытащить вверх по течению, поскольку более широкий мир не будет интересоваться вашими более ранними ошибками.