Как получить файлы, измененные между двумя наборами изменений в GIT? - PullRequest
2 голосов
/ 17 февраля 2012

Извините за плохое качество самого вопроса, но я сталкиваюсь с ситуацией, когда единственный язык, который я знаю, сталкивается с существующим жаргоном. Пожалуйста, не стесняйтесь указывать мне в направлении правильного жаргона, так как я подозреваю, что мог бы найти этот ответ, если бы знал его.

Я хочу создать «патч» с помощью git, который содержит файлы, необходимые для перехода с одной версии проекта на другую. Мне не нужен настоящий GIT-патч, который обновляет мастер на основе выходных данных ветви, а скорее что-то похожее на zip, содержащий все файлы, измененные с момента данного обновления.

Ситуация такова, что я не хочу просто выгружать все содержимое обновленной версии на сервер (есть много файлов, которые не были изменены), но в то же время я не хочу иметь пройти и вручную выбрать около 300 файлов.

Я знаю, что в GIT есть какой-то вариант развертывания FTP, но используемый нами сервис этого не обеспечивает, поэтому, насколько я могу судить, мне нужно нечто похожее на коммерческий дельта-патч, который получает распространяется каждый раз, когда компания обновляет продукт. Я считаю крайне маловероятным, что GIT не предоставляет ЧТО-ТО, похожего на эту функциональность, но я не знаю, где и как его найти.

Редактировать: так как он выглядит из одного ответа, как будто он может быть релевантным, это если для веб-приложения, поэтому я говорю об отслеживании файлов css, php, html и js, возможно, с некоторыми художественными эффектами хотя системы контроля версий плохо работают с искусством.

Ответы [ 3 ]

4 голосов
/ 18 февраля 2012

Если передать diff для xargs слишком сложно для вас, вы можете попробовать

  • ГИТ-Deploy
  • ГИТ-FTP
  • объединить git archive и git diff в форме git archive -o update.zip HEAD $(git diff --name-only HEAD^)
2 голосов
/ 17 февраля 2012

Рон, я надеюсь, что это поможет:

    git diff --name-only HEAD HEAD^
    CCodeClasses.cpp
    CCodeClasses.h
    CTypeClasses.cpp
    CTypeClasses.h
    CTypeResolver.cpp
    CTypeResolver.h
    DFSearch.cpp
    DFSearch.h
    Util.cpp
    Util.h
    x32wrapper.cpp
    x32wrapper.h
    mfcreplacements.h

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

0 голосов
/ 19 февраля 2012

Хорошо, если мы скажем о GUI-ориентированном решении для окон вокруг GIT, я смогу увидеть дополнительные экзотические извращения (Git-fanboys, сядьте !!!):

TortoiseHG (1- Windows 2 - GUI 3 - для Mercurial SCM) с расширением hg-git

Добавить git-репозиторий в THG, использовать контекстное меню в панели наборов изменений, Экспорт - Архив - «Только файлы»... "

Git Repo

Archive only changes

Оба скриншота взяты из моего git-репо, полностью обработанного TortoiseHG

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