Изменить историю GitHub

git git-commit

110 просмотра

2 ответа

Я заранее прошу прощения за то, что задал этот вопрос, поскольку его уже миллион раз задавали.

Мне нужно изменить историю Git моего проекта, история коммитов в настоящее время выглядит так:

[E] <- [D] <- [C] <- [B] <- [A]

Где: A: добавлен код, B: добавлен код и добавлены данные, C: реструктурирован проект, D: удалены все данные, E: добавлен код

Проблема заключалась в том, что на коммите C наша проектная группа была уведомлена о том, что данные должны храниться локально, а не публично в git. Я не очень разбираюсь в git, поэтому первым делом я удалил данные. Но это мало что дало, поскольку к данным можно было получить доступ в истории. Как мне исправить проблему, чтобы история выглядела так:

[E] <- [C] <- [B] <- [A]

Где: A: добавлен некоторый код, B: добавлен некоторый код, C: реструктурированный проект (без каких-либо ссылок на данные) E: добавлен некоторый код

Автор: Klas. S Источник Размещён: 24.10.2019 05:03

Ответы (2)


4 плюса

Вот способ удалить конкретный коммит, если из истории

git rebase --onto commit-id commit-id HEAD

Вы можете использовать команду ниже, чтобы удалить коммит "D" из истории

git rebase --onto DE HEAD

Автор: SnehalK Размещён: 08.02.2016 11:51

1 плюс

Вы можете сделать это с помощью этих команд:

# Rebase from C commit in interactive mode...
git rebase -i C

# Then remove the D commit line in the editor, save and quit.
# You can edit commit messages by using "edit" option for
# concerned commits.
# Resolve conflicts if needed and finish rebasing.

ИЛИ (без редактирования сообщения о коммите):

# Rebase from C: Pick E history but exclude D history
git rebase --onto C D E

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

# --force-with-lease means:
# "If anybody already pushed after the last known origin/<branch> sha1,
# The push force command will be aborted (avoids to loose newers pushes
# from your friends...).
git push --force-with-lease origin <branch>
Автор: jbaptperez Размещён: 08.02.2016 12:33
Вопросы из категории :
32x32