Как мне объединить локальные коммиты в один файл перед git push? - PullRequest
1 голос
/ 06 декабря 2011

Немного сейчас использовал git, но только основные функции.

Чтобы переключиться на Textmate и сохранить классную локальную историю, которую имел Eclipse, я сделал this . Который работает отлично.

Но сейчас я работаю в команде с частным хранилищем github. Я не хочу загрязнять команду своей полной историей бесполезных коммитов.

Я знаю, что есть некоторые инструменты для редактирования моих коммитов, но:

git rebase -i

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

СНИП

Какая ветка? :)

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

Спасибо!

1 Ответ

5 голосов
/ 06 декабря 2011
git rebase -i

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

git rebase -i HEAD~4

, что позволяет вам "редактировать" последние 4 коммита в текущей извлеченной ветке.

Я не уверен, почему вы захотите это сделатьэто "на файл".Кроме того, 'rebase -i' вызовет у вас головную боль, если у вас там будут слияния.Из того, что я могу сделать вывод, вы можете сделать следующее:

Установить текущий коммит в начале ваших изменений, но сохранить рабочий каталог как есть.

git reset --mixed HEAD~10

Это будет двигатьсяВы вернетесь туда, откуда начали, если у вас было 10 коммитов для ваших изменений.«mixed» гарантирует, что вы не внесете никаких изменений, и индекс будет чистым.

Затем внесите изменения в каждый отдельный файл:

git add path/to/one/of/the/files/file.txt
git commit -m "added feature X to file.txt"

повторите для остальныхфайлы.Проверяйте в процессе работы с помощью git status.

Когда вы нажимаете, вам может понадобиться добавить опцию -f (--force), если вы уже нажали некоторые из этих коммитов.Если другие отрабатывали эти коммиты, дайте им знать, что вы это сделали.Им придется отменить свои изменения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...