Слияние ветки 'user' в git log - PullRequest
       0

Слияние ветки 'user' в git log

1 голос
/ 11 октября 2010

Я работаю в ROR на машине с Ubuntu. Я сделал некоторые изменения в моих файлах и подтвердил это сообщением.

Теперь, когда я проверил с git log вещь ..

Я получаю новый MSG обряд над отправленным сообщением под именем Merge Branch 'myname' .. Почему это так происходит?

Пожалуйста, дайте предложения ..

РЕДАКТИРОВАТЬ:

Дата: понедельник, 11 октября 11:42:29 2010 + 0530

Merge branch 'aruna'

Ответы [ 2 ]

1 голос
/ 11 октября 2010

Вы не должны беспокоиться о git "merge commits". Фиксация слияния содержит только различия между вашей локальной версией ветки и удаленной версией ветки. (следовательно, почему они появляются, когда вы тянете и были какие-либо изменения).

Перебазировка, в точности как предложено в ответе Павина, является хорошим способом избежать этого, но только , если вы знаете, что делаете. Перебазировка должна использоваться только в локальной ветви функций (ветке, которую вы никогда не нажимаете), потому что она перезаписывает все коммиты, которые были зафиксированы в ветви функций. перебазирование ветки, в которой есть коммиты других людей, может случайно удалить историю коммитов, если вы не знаете, что делаете.

0 голосов
/ 11 октября 2010

Это вопрос git и не относится к Rails.

Итак - это нормально в git, и это произойдет в такой ситуации

               - aruna: X -> Y 
              /
master: A -> B -> C -> D .....

когда вы объединяете aruna с master (либо путем слияния aruna в ветке master, либо просто потянув команду [pull is «два в одном» - она ​​выполняет выборку и слияние]), вы получите новый узел «merge», который объединение обеих ветвей (узлы C, D & X, Y)

Когда вы спрашиваете, держу пари, что вам это не нравится. Таким образом, возможное решение состоит в том, чтобы перебазировать ветку aruna вместо слияния. Например:

# normally commit everything in your aruna branch
git checkout aruna
git add ... 
git commit -m "..." ...

git checkout master
git pull # it will just fetch as there is nothing to be merged
git checkout aruna
git rebase master # and solve possible conflicts
git checkout master
git merge aruna # it will *not* make the "merge node"
git push

EDIT: Как уже упоминалось, перебазировка на самом деле невозможна, если вы уже нажали на ветку или у вас есть другие люди, которые потянули вашу ветку.

Но все же - перебазирование - вариант, если вы объединяете свою локальную частную ветку. Что является довольно распространенным сценарием. И так как ваша ветка называется "Аруна" (ваше имя), я подумал, что это так. Но, как я думаю об этом снова, нет оснований думать так: -)

При перебазировании (локальная ветвь функций) вы потеряете некоторую часть истории, которая говорит о том, что вы выполняли свои коммиты параллельно. Но компромисс в том, что у вас будет более простое узкое дерево.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...