Как сделать патч из репозитория 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^
чтобы получить только ваш коммит (который, по-видимому, самый последний).