2015-09-03 3 views
0

Есть ли способ группировки в Git ?? У меня была история создания пользователя. Я создал файл по файлу и передал каждый файл по отдельности. И подтолкнул его к реестру github. Теперь я хочу сгруппировать все предыдущие коммиты, например, под меткой «Создание пользователя», чтобы я мог сослаться на всех их всех вместе.Есть ли способ группировать коммиты в Git?

Я не хочу сортировать, так что сквош не работает.

This SO question имеет аналогичные требования, но при присвоении имен Comms OP использовал @some_label. Я тоже не использовал такой ярлык.

Есть ли способ сделать это. Если да, то как?

+3

Следуйте моим ответам на аналогичную проблему http://stackoverflow.com/questions/31668794/squash-all-your-commits-in-one-before-a-pull-request-in-github/31669260 # 31669260 – EnriMR

+0

Сам процесс, который вы хотите совершить *, - это раздавливание. Даже в интерактивной перезагрузке это все равно сжимает коммиты вместе. Почему ты этого не хочешь? – Makoto

+0

вы неправильно поняли мой вопрос. Я хочу, чтобы предыдущие коммиты все еще были там, но просто группируйте их. – inquisitive

ответ

5

Создайте свои фиксации на ветке и слейте ветку обратно в мастер с помощью --no-ff.

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

  1. Создать ветку (git branch user-creation) на последней фиксации.
  2. Переместите главную ветку (которая, как я полагаю, вы уже проверили), вернитесь к последнему фиксации до того, как пользователь-создание совершит (git reset --hard OLD-COMMIT-SHA).
  3. Объединить user-creation ветвь в master (git merge --no-ff user-creation).
+0

Это хороший подход, но я уже нажал на фиксации. Без создания ветки. – inquisitive

+0

Я писал ответ, предлагая это, так что втягиваю его. Если вы уже нажали на коммиты и согласны переписать историю, просто исправьте ее и нажмите -f –

+2

. Я добавил инструкции для ретроактивного создания и объединения ветки. –

2

Если вы не хотите, сквош, просто сделать перебазироваться и изменить совершающее добавляющие «@fancy_label», затем следуйте инструкциям в ваших link:

Вы могли бы использовать post-commit крючки в ваш репозиторий для достижения этого эффекта . Кратко:

  1. Вы допускаете с сообщением, содержащее специальную метку (например: @fancy_label)
  2. post-commit крючок синтаксического анализа сообщение фиксации и обнаруживает это @fancy_label (и другие метки)
  3. post-commit крюк после этого добавляет это обязательство список коммитов для каждого ярлыка и сохраняет его в постоянном хранилище (в обычные файлы или в даже в базе данных)

Это постоянное хранилище может быть полезным onal (не допускается в папке .git) или поручается (включен в проект).

И вам нужно сделать git-псевдонимы, чтобы сделать поиск и список этого комментирует их соответствующие ярлыки.

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