Как сделать патч из репозитория github, если мне не удалось создать функциональную ветку?

Я раздвоил / клонировал apache whirr на Github и начал работу над веткой ствола. Во время работы я вытащил два коммита из origin/trunk. Когда я генерирую патч, запустив git diff first_feature_commit HEAD, я получаю патч, в котором есть эти два коммита. Поэтому патч был отклонен, когда я представил его.

Как мне создать патч без коммитов, которые я вытащил из origin/trunk?

4 ответа

git checkout -b rj/rilly_feature
git rebase -i master
# remove spurious commits in interactive rebase file
git diff master
# observe success

Это предназначено для устранения вашей "неудачи" при создании ветки функций - если вы считаете, что вам следует работать с веткой функций, вы получите одну из них и также сможете сгенерировать чистый патч.

1) Добавьте удаленный в репозиторий интересующий вас патчинг. Наверное, что-то вроде

git remote add upstream https://github.com/apache/whirr.git

2) Получить пульт. Просто получите все из них, вероятно:

git fetch --all

3) Сделай свой патч!

git diff upstream/trunk..HEAD >my.patch

НТН! @eldondev

Когда вы хотите получить только те коммиты, которые находятся в вашей основной ветке, а не на origin/master (сервер) вы можете получить те с

git diff origin/master..HEAD

Для более подробной информации смотрите Git Tools - Выбор редакции Pro Git.

Сгенерируйте патч используя git format-patch и это разделит их. Вы также можете просто сделать свой дифференциал с git diff HEAD^ чтобы получить только ваш коммит (который, по-видимому, самый последний).

Другие вопросы по тегам