Как я могу продвинуть одну фиксацию Мерзавца без более ранней?

После добавления Входа выше, я смог видеть, что проблема была вызвана путем пропавших без вести класса TConstants, который я исключал в файле py2exe setup.py.

После удаления "Tconstants" из исключенного списка, у меня больше не было проблем.

6
задан Paŭlo Ebermann 14 August 2011 в 14:15
поделиться

4 ответа

Все коммиты, ведущие к конкретной фиксации, определяют эту новую фиксацию.

То есть, если у вас есть master → dev → bugfix, как показано на изображении ниже:

master → dev → bugfix http://img.skitch.com/20091029-tbffrg53q73mdipiwcr3g2ywuh.png

вы можете нажать только dev , но не только bugfix , но определение из исправление ошибки включает dev , поэтому dev не имеет смысла без bugfix

Однако, если вы создадите это исправление как ветку функций, вы Было бы что-то похожее на это:

ветка функций http://img.skitch.com/20091029-t3w5qk3bhj3ftx1d9xnk32ibkb.png

Вы все равно можете сделать это задним числом (создать новую ветку из origin / мастер , выберите изменение,а затем git reset --hard HEAD ^ в вашей ветке разработки, чтобы избавиться от исправления ошибок).

Как только это будет завершено, вы можете перенаправить свою ветку разработчика с помощью простого git rebase master , и он будет выглядеть так:

новый мастер http://img.skitch.com/20091029-1ts3enwsmsr29imcu7tyk75ett.png

На практике, запуск исправлений ошибок из ветки сделает это в общем, намного проще.

запуск исправлений ошибок из ветки в целом упростит эту задачу.

запуск исправлений ошибок из ветки в целом упростит эту задачу.

7
ответ дан 8 December 2019 в 18:37
поделиться

Что вы можете сделать, так это переместить предыдущую фиксацию во (временную) ветвь, и вишня -выберите новую фиксацию мастеру. Например:

# first commit your current work
git branch temp_branch
git reset --hard HEAD~2
git cherry-pick temp_branch
git push

Тогда temp_branch будет содержать оба ваших новых коммита. Затем вы можете позже выбрать предыдущий, чтобы он стал мастером:

git cherry-pick temp_branch^
git branch -D temp_branch

После этого ваша основная ветка будет содержать те же два коммита, с которых вы начали, но в обратном порядке.

6
ответ дан 8 December 2019 в 18:37
поделиться

просто создайте еще один клон и отправьте исправление ошибки оттуда.

0
ответ дан 8 December 2019 в 18:37
поделиться

Наш магазин широко использует личные отделения. В основном процесс будет выглядеть так:

Учитывая, что вы в настоящее время находитесь в главной ветке

git checkout -b bug_fix_name_that_I_dont_want_to_commit

Вышеупомянутое создает ветвь и проверяет ее ... здесь вы помещаете коммиты, которые вы не готовы отправить.

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

Когда вы будете готовы опубликовать / продвинуть эту одну фиксацию, просто выполните:

git push origin master

, и другие ваши коммиты не пойдут в исходный репозиторий.

Когда вы будете готовы включить «исправление ошибки» в основную ветку, проверьте главную ветку и сделайте;

git merge bug_fix_name_that_I_dont_want_to_commit

Я думаю, что это ответ на вопрос, но если нет, просто дайте мне знать !

0
ответ дан 8 December 2019 в 18:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: