Git тянет без нормальных конфликтов слияния - PullRequest
1 голос
/ 15 июля 2010

Я довольно новичок в Git и работаю с ним всего 3 месяца.Ранее мы перенесли наши репозитории из SVN.

Я хотел бы иметь возможность слить изменения из мастера в мою ветку разработки без получения конфликтов "обычного слияния", которые требуют "git mergetool", просто чтобы я мог проверитьизменение, которое могло быть объединено без специального уведомления.

Это может быть просто мой предыдущий фон SVN и ожидание, которое не относится к Git, но я помню, что в SVN я мог объединить изменение из одной ветвик другому, и это требовало особого внимания только в случае конфликта слияния.

В Git я обнаружил, что мне нужно выполнить "git mergetool", потому что любые изменения в мастере всегда приводят к нормальному конфликту слияния, даже при том, что нет фактических конфликтов слияния.

В настоящее время я извлекаю изменения из мастера и объединяюсь с веткой dev следующим образом:

$ git checkout master
$ git pull
$ git checkout dev
$ git merge master
... [do normal merge conflict thing]
$ git -a commit # though usually this is done via the gui, so I'm not sure of the exact command
$ git push

Я делаю что-то не так или пропускаю конфигурацию для слияний, которая была бы относительно простой в SVN,или мои ожидания не подходят для Git?

Ответы [ 3 ]

0 голосов
/ 15 июля 2010

То, что вы делаете, похоже, должно работать нормально. Я предполагаю, что это где-то еще в процессе, вызывающем проблему. Может помочь понимание того, что вы делаете для внесения изменений в основную ветку. Вы делаете что-то похожее на ветку master, объединяясь с dev, но выборочно возвращая некоторые изменения?

0 голосов
/ 27 апреля 2011

Вы не делаете ничего плохого.Это совершенно нормальный рабочий процесс, возможно, даже самый распространенный.Если у вас постоянно возникают конфликты слияний, вам нужно посмотреть и выяснить, ПОЧЕМУ они происходят постоянно.

Например, это может быть случай, когда у вас есть смешанные версии окончаний строк Unix и Windows, например '\ n'или' \ r \ n '.Также может быть так, что у вас действительно есть нормальные конфликты слияния, и если это так, то у вас будет такая же проблема в любой другой системе контроля версий.

Cheers

0 голосов
/ 15 июля 2010

Я думаю, что вы хотите сделать ребаз вместо слияния.

я всегда делаю

#on my master
git fetch origin
git rebase origin/master
git checkout mybranch
git rebase master

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

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