Как раздавить все git коммиты в один?

HTML

<body>
    <div class="example">
        <p>Lorem ipsum dolor sit amet consectetur...</p>
    </div>

    <footer>
        <ul>
            <li>One</li>
            <li>Two</li>
            <li>Three</li>
        </ul>
    </footer>
</body>

CSS

body {
    min-height: 100%;
}

footer {
    position: absolute;
    bottom: 0;
}
408
задан Jacek Laskowski 31 August 2015 в 12:19
поделиться

5 ответов

Возможно, самый простой способ - просто создать новый репозиторий с текущим состоянием рабочей копии. Если вы хотите сохранить все сообщения фиксации, вы можете сначала выполнить git log> original.log , а затем отредактировать его для исходного сообщения фиксации в новом репозитории:

rm -rf .git
git init
git add .
git commit

или

git log > original.log
# edit original.log as desired
rm -rf .git
git init
git add .
git commit -F original.log
126
ответ дан 22 November 2019 в 23:20
поделиться

Я читал кое-что об использовании графтов, но никогда особо не исследовал это.

В любом случае, вы можете раздавить эти последние 2 коммита вручную примерно так:

git reset HEAD~1
git add -A
git commit --amend
31
ответ дан 22 November 2019 в 23:20
поделиться

Самый простой способ - использовать команду «сантехника» update-ref для удаления текущей ветви.

Вы не можете использовать git branch -D , так как у него есть предохранительный клапан, чтобы остановить удаление текущей ветки.

Это возвращает вас в состояние «начальной фиксации», где вы можете начать с новой начальной фиксацией.

git update-ref -d refs/heads/master
git commit -m "New initial commit"
34
ответ дан 22 November 2019 в 23:20
поделиться
echo "message" | git commit-tree HEAD^{tree}

Это создаст потерянный коммит с деревом HEAD и выведет его имя (SHA-1) на стандартный вывод. Затем просто сбросьте там свою ветку.

git reset SHA-1
48
ответ дан 22 November 2019 в 23:20
поделиться

Во-первых, объедините все ваши коммиты в один коммит, используя git rebase --interactive . Теперь у вас осталось два коммита на сквош. Для этого прочтите любой из

16
ответ дан 22 November 2019 в 23:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: