Слияние коммитов в git - PullRequest
       6

Слияние коммитов в git

1 голос
/ 18 августа 2010

У меня есть хранилище git с сотнями коммитов.Когда я клонировать его, я получаю много продукции, как это:

1002 * ... получил ac6d99d2762efe0fcf2b78656e336c25ca8428d5 получил ef98d4e93c680384f8174b95e431627b29a56580 получил 4d6e1231e0f6265458a8e6ab47a44bfcd357486b получил 7e3d3a2fc10d0dfe00e87e8eed4a3fc1efa5eaed прогулки b43c1e0062b72d3ab416ad209e94e13a6c71815d ... 1004 * Это соответствует каждому коммит, которыйраздражает.Есть ли способ «слияния» коммитов (они больше не нужны), кроме (очевидного) импорта HEAD в новый репозиторий?

Редактировать: клонирование cmd выполняется с помощью метода http.

Ответы [ 2 ]

2 голосов
/ 18 августа 2010

они больше не нужны

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

  • Является ливывод git-clone загромождает экран?Вы можете избежать этого, используя флаг -q, чтобы сделать его тише.Вы также можете обновить - в версии 1.7.1 я не получу длинный список коммитов, если не буду требовать дополнительной детализации (с -vv).

    Болтливый вывод происходит только в простом HTTP-протоколе.Использование протоколов git или ssh более эффективно, и GitHub поддерживает их все.Также читайте о новой Smart HTTP Transport .

  • Вы привыкли к централизованному VCS, где рабочая копия имеет только последнюю версию?Наилучшим эквивалентом, вероятно, является неглубокий клон, созданный с помощью git clone --depth=n, где n - это то, сколько истории вы хотите.Он имеет некоторые ограничения , о которых вы должны прочитать, но он позволяет вам клонировать только недавнюю историю и при этом вносить изменения, которые можно отодвинуть назад.

    Вы не экономите столько места, сколькокстати, вы можете ожидать от мелкого клона - я выбрал случайный проект, и 2,2 МБ истории сократились до 1,2 МБ, когда я взял только последний коммит.Пакет Git очень компактен.

  • Вы действительно хотите выбросить всю эту историю?Важный урок в git заключается в том, что любые изменения в истории делают ваш репозиторий несовместимым с его источником - если вы перебазируете их, чтобы раздавить их все, или же выбросите всю историю и начнете сначала, вы не сможете общаться с источником репозитория.

2 голосов
/ 18 августа 2010

Если у вас есть проблемы только с git clone, вы можете попробовать использовать флаг -q, чтобы сделать его более тихим.

Если вы хотите объединить коммиты, используйте git rebase -i.На языке git слияние одного коммита с другим называется «раздавливанием».Имейте в виду, что это влияет только на текущую ветку.Если коммиты существуют в других ветвях, они все равно будут существовать в других ветвях.

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