2017-01-13 24 views
0

Я внес много изменений в свой локальный репозиторий, но хочу нажать только несколько из них. Является ли это возможным? У меня есть список (до нажатия) со всеми моими изменениями, но мне нужно нажать только несколько. Я хотел бы вернуть все эти изменения из моего местного репозитория. Я создал исправления с изменениями, которые я хочу нажать, но теперь я не могу удалить изменения из своего локального репо. Я пытался использовать git reset hard, но он не работает, как я хочу.Git - вернуть зафиксированные изменения из локального репозитория

+0

Возможный дубликат [как вы толкаете только некоторые из вашего местного мерзавца совершает?] (Http://stackoverflow.com/ вопросы/604399/how-do-you-push-only-some-of-your-local-git-commits) – sigy

+0

Также по теме: [git - pushing specific commit] (https://stackoverflow.com/questions/3230074/ git-pushing-specific-commit) – sigy

+0

@sigy Я думаю, что проблема OP отличается от того, что они также хотят изменить свою локальную историю. – Dunno

ответ

2

Если вы действительно, действительно просто хотите, чтобы удалить ненужные фиксации, а затем сделать

git rebase -i <sha_of_commit_before_those_that_are_unwanted> 

, а затем удалить строки с обязует вы хотите избавиться.

Однако, иметь в виду, что те совершают будут исчезают, и получать их обратно не может быть возможным. Может быть, сначала надавите эти коммиты на временную удаленную ветку или создайте с ними локальную ветку?

Теперь, когда вы избавились от ваших коммитов, вы можете сделать простой git push origin branch

+0

Ну, если я создаю временную ветку и вношу изменения из локального репо в эту ветку, это должно решить мою проблему, правильно? Думаю, это безопасный путь. – allocer

+1

@allocer yes, создание локальной ветви также сохранит ваши фиксации. Я просто предпочитаю надавливать на пульт для дополнительной безопасности. – Dunno

+0

Я создал новую локальную ветвь, надавил туда все мои изменения, вернулся к основной ветке и откройте окно Push. Местные изменения все еще существуют, как раньше. Как это решить? – allocer