запрос слияния gitlab из командной строки

Я работаю с gitlab.

Во-первых, я не нашел на gitlab функции "Pull Request". Я полагаю, это называется «Merge Request»?

Вот что я хочу понять:

Предположим, у нас есть проект под названием project1. Этот проект является общедоступным проектом gitlab, написанным пользователем user1.

Теперь предположим, что у нас есть участник (user2), который хочет что-то изменить в project1. Вот шаги, которые должен сделать user2:

  1. Вилка project1 в веб-интерфейсе gitlab (кнопка Fork)
  2. Клонируйте разветвленный проект на своем локальном компьютере.
  3. создать ветку (brtest)
  4. Записать или изменить файлы исходного кода
  5. зафиксировать изменения
  6. протолкните brtest в разветвленный проект
  7. В веб-интерфейсе gitlab запросите запрос на слияние

Пользователь User1 увидит новый запрос на слияние, открытый в его веб-интерфейсе gitlab. Предположим, что user1 согласен с изменениями, внесенными пользователем user2.

Если user1 нажимает кнопку «Объединить», я вижу ссылку, которая объясняет мне, какие команды интерфейса командной строки мне следует вводить. Здесь я хочу кое-что понять.

Вот команды:

git fetch git@gitlabserverofuser2/user2/project1.git brtest
git checkout -b localbrtest FETCH_HEAD
git checkout master
git merge --no-ff localbrtest
git push origin master

Я понял, что FETCH_HEAD представляет то, что выбирается в первой строке. Мой первый вопрос: что мне вводить вместо FETCH_HEAD? Я пытался ввести это, но это не сработало:

 git checkout -b localbrtest git@gitlabserverofuser2/user2/project1.git/brtest

Я также набрал

git branch
git branch -a
git branch -r

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

Следующий вопрос, почему они не ставят параметр без перемотки вперед. Опасно ли пропускать этот параметр и в чем риск?

Последний вопрос: слияние не показывает мне конфликтов. Он стирает и заменяет файлы. В некоторых случаях, когда я работаю с локальными ветвями в одном проекте, я могу иногда видеть файлы, содержащие разницу, когда возникает конфликт. Почему git не применяет такое же поведение в случае запроса на слияние?

Спасибо


person Bob5421    schedule 14.06.2018    source источник
comment
FETCH_HEAD - это встроенный псевдоним git для фиксации.   -  person SLaks    schedule 14.06.2018
comment
Спасибо, но как я могу прочитать его значение?   -  person Bob5421    schedule 14.06.2018
comment
Используйте 1_.   -  person SLaks    schedule 15.06.2018
comment
нет, это не дает мне значения   -  person Bob5421    schedule 15.06.2018


Ответы (2)


FETCH_HEAD - это указатель на начало вашей истории git. Самое последнее состояние.

person lyuboslav kanev    schedule 19.12.2018

Что касается вашего второго вопроса, вы получите конфликт только в том случае, если две ветки изменили один и тот же файл в одном и том же месте. Это конфликт, потому что git не знает, какие изменения вы действительно хотите. Если вы не внесли никаких изменений, вызывающих конфликт, git сообщит вам об этом, и тогда вам нужно будет использовать программу слияния, чтобы выбрать изменения, которые вы хотите сохранить.

Вероятно, вы не видите конфликта, потому что вы работаете над разными частями, и конфликта не существует.

person Major    schedule 19.12.2018