Получить коллекции различий - PullRequest
2 голосов
/ 31 августа 2010

У меня есть проект на github.com. Все лето я делал коммиты. Теперь мне нужно получить все пути.

Я знаю, что могу:

git log -p > project.path

Но этот вариант записывает все пути в один файл. Как я могу сделать:

У меня есть 3 файла в репозитории github:

  • test.c

  • test1.c

  • test2.c

Как я могу получить 3 файла со всеми путями?

  • test.diff

  • test1.diff

  • test2.diff

Спасибо

Ответы [ 2 ]

1 голос
/ 31 августа 2010

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

Для начала вам нужно иметь идентификатор первого коммита в вашем проекте, давайтепритвориться, что это 123abcd (кто-нибудь знает об автоматическом способе получить это?).

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

for file in `git diff --name-only 123abcd`; do 
    git diff 123abcd ${file} > `basename ${file}.patch`
done

Что все это значит:

git diff --name-only 123abcd

Предоставит вам список любых файлов, которые изменились с момента редакции 123abcd

git diff 123abcd ${file} > `basename ${file}.patch`

Создает фактический diff и сохраняет его в имя файла без указания пути к нему.

Когда вы закончите, ваш текущий рабочий каталог должен содержать все ваши файлы .patch.

1 голос
/ 31 августа 2010

Вы можете использовать git format-patch для создания последовательности патчей из ваших коммитов (один патч на коммит).

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