Я работаю с gitlab.
Во-первых, я не нашел на gitlab функции "Pull Request". Я полагаю, это называется «Merge Request»?
Вот что я хочу понять:
Предположим, у нас есть проект под названием project1. Этот проект является общедоступным проектом gitlab, написанным пользователем user1.
Теперь предположим, что у нас есть участник (user2), который хочет что-то изменить в project1. Вот шаги, которые должен сделать user2:
- Вилка project1 в веб-интерфейсе gitlab (кнопка Fork)
- Клонируйте разветвленный проект на своем локальном компьютере.
- создать ветку (brtest)
- Записать или изменить файлы исходного кода
- зафиксировать изменения
- протолкните brtest в разветвленный проект
- В веб-интерфейсе 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 не применяет такое же поведение в случае запроса на слияние?
Спасибо
FETCH_HEAD
- это встроенный псевдоним git для фиксации. - person SLaks   schedule 14.06.2018