Показать сообщение отдельно
  #4 (permalink)  
Старый 04.12.2013, 13:29
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от danik.js
Как это сделать таким образом, чтобы в историю коммитов не попала лишняя шняга? Если я делаю периодический merge то появляются же нежелательные коммиты.

Меня просит исправить ситуацию владелец резитория, куда я отправил запрос на слияние. Что конкретно я должен сделать? Придется ли пересоздавать pull request, если необходима история без левых коммитов?

Следуй общепринятому воркфлоу.

Еще раз:

1. Делаешь форк репозитория (если речь идет о гитхабе)
2. Клонируешь репозиторий:
git clone --recursive ....

3. Добавляешь алиас для удаленного репозитория:
git remote add fork ....

4. Подтягиваешь изменения из удаленного репозитория:
git pull fork master

По-умолчанию в pull'e используется флаг --no-ff и автокоммит, так что все по-честному.
Но если есть желание поиграться с ребейсом, можно заюзать --rebase

Если не хочешь делать автокоммит, то сделай все вручную:
git fetch fork master
git merge foo --no-commit --no-ff

5. Обнови все сабмодули (если нужно):
git pull --recurse-submodules && git submodule update --recursive

Или так (если нужно обновить только сабмодули):
git submodule foreach --recursive git submodule update --init

6. Создаешь свою ветку:
git checkout -b foo

7. Вносишь свои изменения
8. Обновляешь тесты.
9. Запускаешь тесты (в большинстве случаев, для JS-репозиториев нужно выполнить команду grunt)
10. Делаешь коммит:
git commit -am ...

11. Отправляешь свои изменения:
git push fork foo


PS: желательно чтобы коммит был не в мастер, чтобы владелец репозитория мог поправить историю и выкатить релиз (git tag).

Последний раз редактировалось monolithed, 04.12.2013 в 15:03.
Ответить с цитированием