2013-09-21 5 views
2

Я сделал некоторые мусор совершает, что я не хочу иметь большеGit (хаб) удалить старые совершает

Допустим, я сделал некоторые незначительные изменения и совершенные после каждого изменения. Но я хочу только отойти от последнего моего последнего коммита до github. Вот как выглядит моя история:

Initial commit --> Second commit --> Third commit --> Fourth commit 

Только мой четвёртый коммита достаточно нажать на GitHub, так как я мог удалить совершить с 1 по 3, но держать 4?

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

ответ

4

Вы не можете удалить старейший совершают если Новейшие совершить зависит от них. В противном случае:

git rebase -i HEAD~4 

И удалите нежелательные фиксации, удалив соответствующую строку.

1

Используйте git revert <commit> где <commit> - это хэш этого обязательства, показанный в git log. В основном это создаст другую фиксацию, которая вернет обратно изменения, сделанные в указанных коммитах. Вот шаги:

  1. git log и обратите внимание на хэши фиксации 1-3
  2. git revert <commit 1>, git revert <commit 2> и git revert <commit 3>
  3. Теперь вы будете иметь дополнительные three commits, которые возвратятся изменения фиксации 1-3.
  4. git rebase -i HEAD~7 это раздавят ваши 7 фиксаций в 1.
  5. При запросе, редактировать commit 4 которого сообщение фиксации вы хотите, чтобы насадить pick и изменить другие squash.

Для получения дополнительной информации см this

Смежные вопросы