Сообщение от 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).