2015-09-18 4 views
2

Я сделал boo-boo. Я забыл что-то добавить, прежде чем совершить. Я толкнул. Затем я осознал свою ошибку и внес поправки в коммит и попытался заставить push (никто еще не мог получить фиксацию, не качайте меня!), но принудительное нажатие было отключено. Я смог исправить свою историю и толкнуть. Здесь ниже:Как удалить бесполезный локальный коммит в git?

* 46b65b5 Amend previous commit (c1672ab8671) with some missed changes 
* c1672ab Clean, rescope, and manage dependencies after running mvn dependency:analyze 
| * 7eb0c6a (tag: oops) Revert "Clean, rescope, and manage dependencies after running mvn dependency:analyze" 
| * 385f1b6 Clean, rescope, and manage dependencies after running mvn dependency:analyze 
|/ 
* f13ce81 Manage all dependencies at the top level pom 

Вот отдаленная история, обратите внимание на Наедине из 385f1b6 и 7eb0c6a

* 46b65b5 Amend previous commit (c1672ab8671) with some missed changes 
* c1672ab Clean, rescope, and manage dependencies after running mvn dependency:analyze 
* f13ce81 Manage all dependencies at the top level pom 

385f1b6 и 7eb0c6a ничего, кроме позорной напоминание, чтобы удвоить проверить свои коммиты, прежде чем нажимать и сделать мой локальный граф уродлив. Как я могу избавиться от них? Напоминание: они не находятся в репозитории команды, их никто не имеет, они - мой единственный позор, который я хочу стереть из памяти.

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

В защиту этого не будучи в двух экземплярах:. Как @hvd заявил,

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

+2

возможно дубликат [Как трудно удалить сирота совершить в мерзавца?] (http://stackoverflow.com/questions/7907372/how-to-hard-delete-an-orphan- commit-in-git) – GolfWolf

+0

@ w0lf Не дубликат этого. Удаление из видимой истории и физического удаления с жесткого диска - это два очень разных вида делеций. Этот вопрос требует первого, другой - последнего. – hvd

+0

@hvd Я не знал об этом различии. Я отозвал свой голос. Благодаря! Сегодня я чему-то научился. :) – GolfWolf

ответ

3

вероятно тег (и, возможно, филиал) делают Thos совершает отображаться в вашей истории. Для начала, удалите тег:

git tag -d oops 

теперь, если эти два коммиты, которые вы хотите, чтобы избавиться от того, находятся на ветке (вы можете использовать git log --all --decorate --oneline --graph, чтобы получить четкое представление о вашей истории), то вам необходимо удалить, что филиала, а также:

git branch -d <oops-branch> 
+0

Это исправлено! Благодаря! Иронично, что в учебнике было сказано, что я должен его пометить, и я пытался его удалить, и это было тем, что поддерживало его. –

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