2016-10-26 3 views
1

У меня, как я полагаю, есть типичный рабочий процесс.Как получить изменения от ведущей ветки к локальной ветке?

Наш проект работает с запросами на тяну.

Чтобы создать новую функцию, я создаю dev. филиал. К тому моменту, когда я закончил эту функцию, некоторые изменения были внесены в мастер , поэтому я хочу, чтобы эти изменения были внесены в мою ветку, поэтому я делаю запрос на pull.

Из того, что я прочитал в Интернете, есть два варианта для этого:

  1. слияния
  2. перебазироваться

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

Вот что я сделал:

на ветке

-- git commit -a -m "changes i made on my branch" 
-- git checkout master 
-- git fetch upstream 
-- git merge upstream/master 
-- git checkout mybranch 
-- git merge master (or rebase) 
-- git push origin mybranch 

результат - сливаться фиксации в истории показывает файлы изменения: 90

Что такое правильный способ получить обновления от мастер в мою ветку?

Аналогичная ситуация случается, когда кто-то просматривает мой pr, и мне нужно обновить свой pr. Еще раз, я в конечном итоге нуждаюсь в изменениях от мастера.

Спасибо за помощь.

+0

Возможные Дублировать e of [Когда вы используете git rebase вместо git merge?] (http://stackoverflow.com/questions/804115/when-do-you-use-git-rebase-instead-of-git-merge) – Joe

+0

@ Джо, это не когда использовать то или это. в обоих случаях я получаю тот же результат – rigby

+1

Если вы получаете тонны файлов, изменили, когда на самом деле вы только отредактировали несколько файлов, проверьте diff.Если он автоматически изменил вкладки на пробелы, вы можете посмотреть в настройках окончания строки. – miva2

ответ

0

- мерзавец фотографии mybranch

- мастер мерзавец слияния (или перебазировать)

До этого правильно

После этого вы непосредственно толкая к вашей отрасли, перед тем это просто добавить и зафиксировать как это.

- git add.

- мерзавец совершить -й «Сообщи после слияния»

- мерзавец толчок происхождения mybranch

Это слияние мастер кода филиала с вашей отраслью (т.е. mybranch) & будет толкать код происхождение

+0

. Я фиксирую все свои изменения для своей функции, прежде чем переключиться на мастер, чтобы проверить наличие там изменений. , но я попробовал то, что вы предложили, и до сих пор получить ту же проблему: Показ 90 измененных файлов , что я сделал: ... - мерзавец фотографии mybranch - мерзавец мастер слияния (без конфликтов) - мерзавец Добавить . - git commit -m "msg после слияния" (git ничего не говорит) - git push origin mybranch результат: 90 измененных файлов – rigby

+0

что конечный результат вы хотите? @rigby –

+0

Мне нужно, чтобы git показывал, что только файлы, которые я фактически изменил как «измененные». пока показывает, что все файлы (90) были изменены. – rigby

9

Вы можете тянуть изменения от мастера к вашей отрасли с:

git checkout my_branch # move on your branch (make sure it exists) 
git fetch origin   # fetch all changes 
git pull origin master # pull changes from the origin remote, master branch and merge them into my_branch 
git push my_branch  # push my_branch 
+0

Вы имели в виду «git pull origin master»? я не могу вытащить начало my_branch, потому что моя ветка еще не нажата – rigby

+0

@rigby да, извините за ошибку. –

+0

, когда вы, наконец, нажали, должно быть: git push origin my_branch – KBJ