Git запрос-вытащить из локальной ветки в удаленный мастер
Мне очень нравится метод gitub pull-request для совместной работы по распределенной разработке программного обеспечения. Это позволяет обсуждать и просматривать код.
Моя цель - использовать тот же поток, но внутри нашего репозитория без github. Я не хочу раскошеливать проект.
Давайте представим себе, что я создаю удивительную функцию локально. И я хочу сделать запрос на растяжение на моей главной ветке, чтобы принудительно проверить код.
A---B---C feature/awesomeFeature
/
D---E---F---G origin/master
master
можно ли сделать запрос на извлечение на начало/мастер?
Я пробовал git request-pull feature/awesomeFeature origin
без каких-либо успехов
Ответы
Ответ 1
Если вы разработали свою ветвь функций локально, вам просто нужно использовать:
git request-pull origin/master feature/awesomeFeature
Это даст вам краткое изложение изменений. Если вы хотите каждую деталь, не забудьте добавить -p
(для патча) в свою командную строку.
Ответ 2
Запросы Pull фактически не реализованы внутри самого git, поэтому вам понадобится другая система, которая будет сидеть поверх git. Если вы хотите разместить свой репозиторий самостоятельно, вы можете использовать программное обеспечение, такое как GitLab, чтобы управлять своим репо и разрешать создавать запросы на тягу.
Ответ 3
Можно ли сделать запрос на получение origin/master
?
Пока origin/master
является допустимой ветвью, да.
Но с Git 2.23 (Q3 2019) " git request-pull
" научился предупреждать, когда ссылки, из которых мы просим их извлечь из локального репозитория и в опубликованном репозитории, различаются.
См. Коммит 0454220, коммит 5731dfc (28 мая 2019 г.) Паоло Бонзини (bonzini
).
(Объединено Junio C Hamano - gitster
- в коммите dedc046, 17 июня 2019 г.)
request-pull
: предупредить, если удаленный объект не совпадает с локальным
В некоторых случаях git request-pull
может быть вызван с удаленными и локальными объектами, которые отличаются, даже если они указывают на один и тот же коммит.
Например, удаленный объект может быть облегченным тегом по сравнению с аннотированным тегом на локальной стороне; или пользователь мог переписать тег локально и забыл его нажать.
Когда это происходит, git-request-pull
не будет предупреждать, потому что он только проверяет, что " git ls-remote
" возвращает SHA1, который соответствует локальной фиксации (в $headrev
).
Этот патч заставляет git-request-pull
извлекать объект тега SHA1 при обработке вывода " git ls-remote
", чтобы его можно было сопоставить с локальным объектом.