Git (GitLab) - Ошибка слияния - Попытка инструкции для «Проверить, проверить, слить локально» - PullRequest
0 голосов
/ 13 декабря 2018

Я попытался выполнить слияние из моей пользовательской ветви в нашу общую ветку "разработка".Я единственный работаю над этим проектом.GitLab дал мне следующие инструкции, с которыми я борюсь.

enter image description here

на шаге 1 - когда я выполнял «git fetch origin» - я делал это в репозитории, который уже находился на моем жестком диске.Это было правильно?Если я попробую его в каком-то недавно созданном каталоге, он будет "роковым: не в git-репозитории (или в любом из родительских каталогов): .git

для второй части шага 1 - я получаю сообщение об ошибке: fatal: Имя ветки 'nw-ob210refactor' уже существует.

Поэтому я попытался добавить 2 в конце, и я получаю эту ошибку: fatal: 'origin / nw-ob210refactor2' не является коммитом и ветвью'nw-ob210refactor' не может быть создан из него

Являются ли приведенные выше инструкции из GitLab полными и правильными, или я делаю какие-то явно неправильные.

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018
git checkout -b localName origin/onlineName

создает новую локальную ветку.См. man git checkout

-b "new_branch"
Создает ветку "new_branch" и начинает ее с "start_point";если он уже существует, сбросьте его на «start_point».Это эквивалентно запуску "git branch" с "-f";смотрите git-branch (1) для подробностей

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

git checkout nw-ob210refactor

, а затем

git pull

Если я попробую его в каком-то новом каталоге

, вы бысначала нужно загрузить

git clone https://your/repository

, чтобы загрузить ваш репозиторий

Поэтому я попытался добавить 2 в конце, и я получаю эту ошибку: fatal: 'origin / nw-ob210refactor2 'не является коммитом, и из него нельзя создать ветку' nw-ob210refactor '

, если что-то и вы хотите создать новую локальную ветку, вам нужно изменить параметр после -b(= локальное имя brnach), а не источник (имя удаленной ветви), который вы пытаетесь загрузить:

git checkout -b checkout nw-ob210refactor2 origin/checkout nw-ob210refactor

Обновление

Как только вы станете Already up to date переходите к шагу 3

и там также

git checkout -b develop origin/develop

, если ветвь develop действительно не существует до сих пор локально.В противном случае снова используйте только

git checkout develop

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

git pull

Теперь у вас есть как локальные, так и обновленные ветви, и вы готовы объединить

git merge --no-ff nw-ob210refactor

Это объединит nw-ob210refactor в develop.Если вам это нужно, в противном случае просто переключитесь на целевую ветвь (checkout) и замените имя.

--no-ff читает no fast forward и означает

Создать объединениесовершать, даже когда слияние разрешается как ускоренная перемотка вперед.Это поведение по умолчанию при объединении аннотированного (и, возможно, подписанного) тега, который не сохраняется в своем естественном месте в refs / tags / иерархии.

или простыми словами вы хотите создать специальный коммит, который будет иметь сообщение merge from branch nw-ob210refactor into develop, даже если нет конфликтов, и вы действительно можете объединить ветви без дополнительного коммита.В большинстве случаев полезно иметь лучший обзор того, что было объединено в истории, и упростить возврат содержимого позже, если вам это необходимо.


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

git push origin develop 
0 голосов
/ 13 декабря 2018

Ваш git fetch origin был верным.Он выбирает последние ссылки с пульта с именем origin.Теперь, когда вы пытаетесь проверить, вполне вероятно, что у вас уже есть ветвь с таким именем (и она может даже находиться в том же коммите, что и на удаленном компьютере).

Просто чтобы убедиться,вам следует pull после того, как вы переключитесь на ветку.

git checkout nw-ob210refactor
git pull

, затем перейдите к шагу 2.


Примечание Вы можете создать вторую веткуссылаясь на эту удаленную ветку, но я не думаю, что это необходимо.Если вам интересно, как заставить работать сценарий «добавить 2», вам нужно добавить его к имени локальной ветви, а не к имени удаленной ветви:

git checkout -b nw-ob210refactor2 origin/nw-ob210refactor
...