Git работает с патчами - PullRequest
2 голосов
/ 11 июня 2009

В продолжение моего предыдущего вопроса Рабочий процесс Git с неопытным участником. Я хочу, чтобы он отправил мне патчи. Проблема в том, что я раньше не использовал патчи, и я не могу найти учебники, дающие объяснение рабочего процесса.

Я хочу, чтобы он вытащил последний код из репозитория. создайте ветку, работайте над ней и внесите свои изменения, когда он будет готов. Я хочу, чтобы он создал для него патч, чтобы я мог интегрировать его в мастер.

Можете ли вы сказать мне, как я могу создать патчи в такой ситуации и применить их к своему мастеру?

Ответы [ 3 ]

4 голосов
/ 11 июня 2009

Создать патч с помощью git-format-patch (1) , или, если вы хотите отправлять электронные письма, просто git-send-email (1) .

Затем примените его с помощью git-apply (1) или, для электронной почты, git-am (1) .

2 голосов
/ 11 июня 2009

Это относительно просто. Скажем ветка foo, а патчи от мастера:

# Put every patch for revisions from master to foo into tmp: 0001, 0002, etc...
git format-patch master...foo --stdout > yo

....

# You apply the patches with git am
cat yo | git am

Обратите внимание, что он не даст вам такие же ревизии, как оригинал, из-за различий в коммитерах. Это немного сложнее в этом случае (http://home.regit.org/?page_id=32)

1 голос
/ 11 июня 2009

без коммитов:

git pull
<hack>
git diff -p > myfirstpatch.txt

тогда он может отправить вам патч по электронной почте.

если он делает коммит, то просто привожу diff несколько аргументов.

git diff blah...blah2 -p >mysecondpatch.txt

тогда вы просто делаете:

git apply mysecondpatch.txt
...