Как исправить удаленную ветку на Git перед моим локальным репозиторием, не делая тянуть - PullRequest
0 голосов
/ 05 декабря 2018

Я работаю над проектом с большим количеством людей, использующих git.Я удален от команды, и то, как мы работали, выглядит примерно так:

1) они создают ветки из «разработки», затем объединяют их в «разработку» после тестирования и переносят это в исходное хранилище.Это часто случается.

2) Я очень часто создаю свою собственную ветку разработки вне источника: ветку с именем my_develop.Затем я создаю из этого ветки, проверяю их и объединяю их в «my_develop».

3) по мере того, как они обновляют слово «развивающихся», я часто объединяю «развиваю» В мою ветку (то есть в my_develop).Это сводит к минимуму расхождение без необходимости ежедневной интеграции моей работы в разработку.

4) примерно раз в месяц я отправляю «my_develop» в исходное состояние, выдаю запрос на извлечение, и он объединяется с разработкой - изатем я начинаю с нового 'my_develop2' и т. д.

Вот проблема.Короче говоря, в какой-то момент в разработку вошел код, у которого были серьезные проблемы, которые ненадолго остались незамеченными.Я, однако, слил эту плохую ветвь 'разработка' в 'my_develop', и подтолкнул ее к происхождению.Это стало проблемой функциональности, которая заморозила мой прогресс, поэтому в какой-то момент я в своем локальном репозитории выполнил «git reset» для фиксации в «my_develop» за три коммита до того, что находится в исходной точке.

проблема в том, что я не могу нажать «my_develop» в начало координат.Он возражает на том основании, что «совет» о происхождении на несколько шагов впереди того, что у меня есть локально, и просит меня сделать попытку интегрировать изменения из источника в ветке «my_develop».

ТочкаКонечно, это то, что я занимался поэтапной разработкой, начиная с того момента, когда несколько коммитов возвращались к исходному.На этом этапе заголовок «my_develop» в источнике устарел, и вытягивание отменяет все изменения, которые я сделал в «живой» ветке локально.

Я видел, как люди делали 3 предложения, как это исправить:

1) сделать 'git push origin my_develop --force'.Логически это то, что я хочу сделать, но есть много предупреждений об опасности сделать это.

2) некоторые предложения говорят, чтобы справиться с этим с ребазом, хотя я не совсем понимаю, как это сделать.

3) вариант № 3 предполагает использование «наших» в качестве средства слияния, но дает руководство git для определения, какая строка кода «выигрывает» в конфликте слияния.

Любые рекомендации получший способ сделать это?

ПРИМЕЧАНИЕ: я единственный человек, который работает над my_develop, если это поможет.

ПРИМЕЧАНИЕ: с тех пор, как я впервые написал: я полагаю, я мог бы просто перейти на свою ветку ('git checkout my_branch'), затем создать новую ветку с этой ('git checkout -b my_latest_branch') и затем просто работатьот этого - и затем выдвиньте это к источнику и выполните запрос на удаление.Это осиротит верхушку «my_branch», но меня это волнует?

1 Ответ

0 голосов
/ 05 декабря 2018

Поскольку вы только один на my_develop

ПРИМЕЧАНИЕ: я единственный человек, который работает над my_develop, если это поможет.

Я рекомендую опцию git push с силой.

  1. Если вы только один на my_develop, вы можете нажать с опцией силы как git push origin my_develop --force'.это не влияет на вашу команду.

  2. rebase - это хорошая практика для обновления кода из основной ветки в вашу функциональную цепочку (my_develop).но ваша ветвь никогда не должна сливать что-либо раньше.

  3. Если код на develop нестабилен, не сливайтесь с вашей веткой возможностей.

пс.вы можете создать новую ветку при последнем коммите, прежде чем объединяться с разработчиком и работать над этим.

...