Шаг, который создаст проблемы для вас, это часть:
git rebase -i featureX ~ 5 featureX
git push origin + featureX
and I then:
git pull
Причина, по которой может создавать проблемы, заключается в том, что если вы изменили код с момента последнего нажатия, ваш код мог бы основываться на коммитах, которых больше нет в истории коммитов (они могли быть изменены или удалены вашим товарищ по команде во время интерактивной перебазировки). Это не «неисправимая» проблема, но она может привести к путанице, дублированию коммитов, плохим решениям слияния и т. Д. Поэтому простое правило: не переписывать историю, которую другие люди могли использовать в качестве отправной точки для своих работа.
Вот несколько других идей, которые могут помочь вам организовать ваши коммиты, не сталкиваясь с проблемами в истории git:
- Запустите
git rebase -i
в своей собственной ветке перед тем, как перенесет свою работу в общий репозиторий.
- ИЛИ Подождите, пока все не завершат фиксацию вашей ветки, а затем выполните
git rebase -i
на работе каждого, прежде чем слиться с мастером. Это безопасно, потому что вы знаете, что никто не будет больше работать над коммитами, которые вы собираетесь изменить.
- ИЛИ Раздавите ветку, когда вы объединяете ее с master (GitHub (и большинство других хостов) имеют опцию для этого).
- ИЛИ Не беспокойтесь так сильно о своей грязной истории или просто работайте над тем, чтобы сделать ваши начальные коммиты чище.
- ИЛИ Работайте над веткой, которую будете использовать только вы (например,
feature1-alan
). Вы можете отправлять и извлекать из / в эту ветку столько раз, сколько хотите, а также на разных компьютерах по мере необходимости. Вы также можете раздавить коммиты и принудительно толкнуть эту ветку, когда захотите - если у вас нет собственной работы, висящей на другом компьютере. Вы можете объединить эту ветку с веткой команды feature
, master
или чем-то еще после того, как вы раздавили и довольны тем, как выглядят ваши коммиты.