Як мені натиснути локальну гілку Git, щоб опанувати гілку у віддаленому режимі?


468

У мене в локальному репо є філія, що називається, і я хочу переконатися, що коли я натискаю її на походження, вона зливається з початком / господарем. В даний час, коли я натискаю, це додається до віддаленої галузі розвитку.

Як я можу це зробити?


Чи є певна причина, що ви не хочете об'єднати її локально, originа потім натиснути на пульт?
bhamby

Я думаю, що @galador означає злиття локально в master- але це дійсна точка. Якщо вона є достатньо стабільною для головного відділення походження, то, безумовно, вона достатньо стабільна для вашої гілки!
Каскабель

1
@Jefromi Так, ого, друкарня. -_-
bhamby

2
@Jefromi уявіть, що ви працювали над чимось у вашого місцевого господаря, і ви зробили деякі зобов’язання, які ще не готові просуватися. Тоді виявляється, що у вас є термінове завдання. Ви створюєте локальну гілку з віддаленого майстра, працюєте і підштовхуєте зміни назад до головного. Можливо, це не найкращий спосіб, але ось зі мною трапилось і ось що я зробив. Це працювало бездоганно за призначенням. Ну, я мав би працювати в окремому місцевому відділенні, в першу чергу, але це біль у попі, щоб постійно відгалужуватися, і було вже пізно.
pinkeen

21
Я підштовхую галузь розвитку до тестуючого додатка на Heroku, який не має публіки, щоб побачити, як все працює в середовищі Heroku. Однозначно не хочу об’єднувати мій код у master, але Heroku не запустить код, якщо він не masterвходить у додаток. Це абсолютно розумний запит із законними випадками використання!
Якоб Евелін

Відповіді:


813
$ git push origin develop:master

або, загалом,

$ git push <remote> <local branch name>:<remote branch to push into>

24
Не робіть "git push origin: master", який може видалити існуючу гілку на віддалений
Mangirdas Skripka

48
Правда @MangirdasSkripka! Просто використовуйте, git push origin head:masterякщо ви не хочете вказувати назву поточної гілки :)
Francesc Rosas

23
Хороша ідея @ FrancescRosàs, хоча це голова (великі літери).
smokku

@Mipadi, якщо у мене є дозвіл на виправдання, чи можу я перенести це
Neeraj Sharma,

11
@NeerajSharma: Я не знаю, що таке дозвіл mender або що ви хочете перемістити.
mipadi

194

Як згадували люди в коментарях, ви, мабуть, цього не хочете робити ... Відповідь mipadi абсолютно правильна, якщо ви знаєте, що робите.

Я б сказав:

git checkout master
git pull               # to update the state to the latest remote master state
git merge develop      # to bring changes to local master from your develop branch
git push origin master # push current HEAD to remote master branch

 


23
Відзначимо, в його запиті є сенс, я використовую цей випадок, щоб розгорнути (підштовхнути) свою розробку до майстра
Хероку

5
Знову ж таки, ця методика є IMHO лише для досвідчених користувачів git. Не те, що це занадто важко, воно просто вимагає від людей, щоб зрозуміти, що вони роблять і чому це працює так, як це працює. Всі можуть вільно використовувати git на свій смак, але я думаю, що підходити до запропонованого мною підходу набагато краще для навчальних цілей, особливо для новачків із git. Очистити "тематичні гілки" - це спосіб почати, ви можете оптимізувати свій робочий процес пізніше, якщо потрібно.
Євген Сахін

1
Це насправді досить звичайна річ. Основна гілка зазвичай - це ваша гілка розгортання. Якщо дві команди навмисно розходяться зі своїм розгортанням, то, швидше за все, ви збираєтесь використовувати місцеву гілку, яка була вибрана вишнею, щоб просунути патчі вгору за течією. Тепер ви можете стверджувати, що зміни слід висунути вгору за течією до гілки, а потім злити звідти в головний, але це, звичайно, не дивно, як зробити це інакше, IMO.
dgatwood

+1 Це найбільш логічний спосіб "побудувати" виробничий реліз.
Райан

Як би ти це зробив, якщо ти не хочеш зливатися з розвитком, але розвинешся заново на майстер?
user239558

-1

Як розширення до відповіді @ Євгенія ще одна версія, яка працюватиме над тим, щоб надсилати код з місцевого репо в майстер / розробляти галузь.

Перехід до гілки "master":

$ git checkout master

Об'єднайте місцеве репо в майстер:

$ git merge --no-ff FEATURE/<branch_Name>

Натисніть на майстер:

$ git push

-1

Виконайте наведені нижче кроки, щоб перенести місцеве репо в гілку Masterenter code here

$ git статус

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.