Subversion имеет --record-only для слияний, как мне сделать то же самое в Git? - PullRequest
15 голосов
/ 07 мая 2010

У меня есть репо, в котором «master» движется в определенном направлении, а вторая ветка «foo» будет расходиться в течение пары коммитов, а затем отслеживать все последующие изменения в «master» после этого.Конечно, это все по выбору.

В Subversion вы можете выполнить слияние --record-only, чтобы пометить вещи как «слияние произошло», даже если фактические изменения не были зафиксированы.то есть это изменение номеров отслеживания слияния в свойствах, прикрепленных к каталогам в целевой ветви.

Я играл с ..

git merge --no-commit master

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

Должен быть более легкий путь ..?

  • Павел

Ответы [ 3 ]

15 голосов
/ 07 мая 2010

Это то, что вы ищете?

git merge --strategy=ours master

наш

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

Похоже, это то, что вы просите - он создает коммит слияния, который фактически не вносит никаких изменений.

Но вы действительно хотите это сделать? Есть ли какая-то причина, по которой ветви просто не расходятся (без слияния), а затем объединяются позже?

0 голосов
/ 07 мая 2010

Джефроми прибил его.Вот реальная вещь - http://github.com/jbehave/jbehave-core/blob/master/examples/trader/src/main/java/org/jbehave/examples/trader/TraderStory.java (поиграйте с ветвями переключателей и посмотрите на строку 65).

Это было не столько о «отбрасывании истории», сколько об использовании Git для манипулирования различными изменениямис одной базы.Чтобы заставить людей принять JBehave (IMO), нам нужно, чтобы примеры были действительно простыми для подражания.До этого примера 'Trader' JBehave vanilla + вариант Guice + вариант SpringFramework + вариант PicoContainer находились в одном и том же исходном каталоге.Теперь четыре ветви могут проиллюстрировать наиболее канонические представления примера «Трейдер».

0 голосов
/ 07 мая 2010

Пол, git обрабатывает переименование с последующим удалением (относительно svn) с легкостью. Он отслеживает содержание, а не имя файла. В SVN это было бы больно, какие проблемы вы испытываете с Git при этом?

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