Grunt-git
Команды Git для grunt.
Начало работы
Если вы раньше не использовали Grunt (http://gruntjs.com/), обязательно ознакомьтесь с руководством «Начало работы» (http://gruntjs.com/getting-started), в котором объясняется, как создать файл Gruntfile (http://gruntjs.com/sample-gruntfile), а также установить и использовать плагины Grunt. После того как вы ознакомитесь с этим процессом, вы можете установить этот плагин с помощью следующей команды:
npm install grunt-git --save-dev
После установки плагина его можно включить внутри вашего файла Gruntfile с помощью этой строки JavaScript:
grunt.loadNpmTasks('grunt-git');
Команда gitcommit
ранее вызывала git add
для вас. Теперь это не так. Обязательно добавьте задачу gitadd
, когда могут появиться новые файлы для фиксации. Опция ignoreEmpty
больше не поддерживается.
Следующие опции могут быть применены к любой задаче:
Тип: Boolean
Значение по умолчанию: none
Консольный вывод задачи git будет передан в вывод скрипта grunt. Полезно для отладки.
Тип: string
Значение по умолчанию: none
Измените текущий рабочий каталог перед выполнением вызова git. Полезно для выполнения операций с репозиториями, которые находятся во вложенных каталогах.
Примечание: При выполнении команд, предоставляющих файлы (например, gitcommit), также необходимо указать cwd
для файлов явно.
grunt.initConfig({
gitcommit: {
your_target: {
options: {
cwd: "/path/to/repo"
},
files: [
{
src: ["fileone.txt", "filetwo.js"],
expand: true,
cwd: "/path/to/repo"
}
]
}
},
})
Добавьте содержимое файла в индекс.
Тип: Boolean
Значение по умолчанию: false
Обновите индекс не только там, где рабочее дерево имеет файл, соответствующий , но и там, где индекс уже имеет запись. Это добавляет, изменяет и удаляет записи индекса в соответствии с рабочим деревом.
Тип: Boolean
Значение по умолчанию: false
Разрешить добавление игнорируемых файлов.
grunt.initConfig({
gitadd: {
task: {
options: {
force: true
},
files: {
src: ['test.txt']
}
}
},
});
Фиксирует рабочий каталог.
В файле Gruntfile проекта добавьте раздел с именем gitcommit
в объект данных, переданный в grunt.initConfig()
.
grunt.initConfig({
gitcommit: {
your_target: {
options: {
// Целевые параметры здесь.
},
files: {
// Укажите файлы, которые вы хотите зафиксировать
}
}
},
})
Каждая цель определяет конкретную задачу git, которую можно запустить. Различные доступные задачи перечислены ниже.
Тип: String
Значение по умолчанию: 'Commit'
Сообщение о фиксации.
Тип: String
Значение по умолчанию: false
Описание фиксации.
Тип: Boolean
Значение по умолчанию: false
Когда true
, задача не завершится ошибкой при отсутствии подготовленных изменений (необязательно).
Тип: Boolean
Значение по умолчанию: false
При значении true
задача зафиксирует изменения с флагом --no-verify
.
Тип: Boolean
Значение по умолчанию: false
При значении true
задача зафиксирует изменения с флагом --no-status
.
Параметры фиксации:
message
: сообщение фиксации;files
: файлы для фиксации;noVerify
: обойти хуки pre-commit и commit-msg при фиксации изменений;noStatus
: не включать вывод git-status
в сообщение фиксации. ## Задача «gitclone»Клонирует репозиторий git.
В файле Gruntfile вашего проекта добавьте раздел с именем gitclone
в объект данных, передаваемый в grunt.initConfig()
.
grunt.initConfig({
gitclone: {
your_target: {
options: {
// Целевые параметры здесь.
}
}
},
})
Каждая цель определяет конкретную задачу git, которую можно запустить. Ниже перечислены различные доступные задачи.
Тип: Boolean
Значение по умолчанию: нет
Запустите git clone с применённой опцией --bare
.
Тип: String
Значение по умолчанию: нет
Клонировать репозиторий с извлечением определённой ветки. (Нельзя использовать вместе с bare
.)
Тип: Integer
Значение по умолчанию: нет
Клонировать репозиторий с ограниченной историей изменений. (Такие клоны нельзя отправить или получить.)
Тип: String
Значение по умолчанию: нет
Путь к репозиторию, который вы хотите клонировать.
Тип: String
Значение по умолчанию: нет
Клонировать репозиторий в конкретный каталог вместо того, который выбирает git.
Тип: Boolean
Значение по умолчанию: нет
Передайте флаг --recursive команде git clone. Это эквивалентно запуску команды git submodule update --init --recursive сразу после завершения клонирования.
grunt.initConfig({
gitclone: {
clone: {
options: {
repository: 'https://github.com/you/your-git-repo.git',
branch: 'my-branch',
directory: 'repo'
}
}
},
});
Создаёт ветку git с помощью checkout -b или проверяет существующую ветку.
В вашем проекте's Gruntfile добавьте раздел с именем gitreset
в объект данных, переданный в grunt.initConfig()
,
grunt.initConfig({
gitreset: {
your_target: {
options: {
// Target-specific options go here.
},
files: {
src: // Target-specific files go here.
}
}
},
})
Каждая цель определяет конкретную задачу git, которая может быть запущена. Различные доступные задачи перечислены ниже.
Тип: String
Значение по умолчанию: ''
Режим сброса для запуска. Например: hard
, merge
.
Тип: String
Значение по умолчанию: 'HEAD'
На какой коммит выполнить сброс (необязательно).
grunt.initConfig({
gitreset: {
task: {
options: {
mode: 'hard',
commit: 'HEAD~1'
}
}
},
});
Удаляет файлы из рабочего дерева и индекса git.
В вашем проекте's Gruntfile добавьте раздел с именем gitrm
в объект данных, переданный в grunt.initConfig()
,
grunt.initConfig({
gitrm: {
your_target: {
options: {
// Target-specific options go here.
},
files: {
src: // Target-specified files go here.
}
}
},
})
Каждая цель определяет конкретную задачу git, которую можно запустить. Различные доступные задачи перечислены ниже.
Тип: Boolean
Значение по умолчанию: false
Принудительно удалит файлы, перечисленные в конфигурации.
Тип: Boolean
Значение по умолчанию: false
Будет рекурсивно переходить в подкаталоги, если это указано в конфигурации.
grunt.initConfig({
gitrm: {
task: {
options: {
force: 'true'
},
files: {
src: ['dist/test.min.js']
}
}
},
});
Удаление неотслеживаемых файлов из рабочего дерева.
В вашем проекте's Gruntfile добавьте раздел с именем gitclean
в объект данных, переданный в grunt.initConfig()
,
grunt.initConfig({
gitclean: {
your_target: {
...
Здесь текст обрывается. Пожалуйста, уточните запрос. ### Опции
#### options.force
Тип: `Boolean`
Значение по умолчанию: `true`
Запускает команду очистки принудительно (опционально).
#### options.dry
Тип: `Boolean`
Значение по умолчанию: `false`
Ничего не удаляет, только показывает, что будет сделано (опционально).
#### options.quiet
Тип: `Boolean`
Значение по умолчанию: `false`
Работает тихо, сообщает только об ошибках, но не о файлах, которые были успешно удалены (опционально).
#### options.exclude
Тип: `String`/`Array`
Значение по умолчанию: `false`
В дополнение к тем, что находятся в `.gitignore` (для каждого каталога) и `$GIT_DIR/info/exclude`, также рассматривает указанные шаблоны как часть действующих правил игнорирования (опционально).
Если необходимо указать несколько шаблонов, следует использовать массив:
```js
grunt.initConfig({
gitclean: {
your_target: {
options: {
exclude: ['.env', 'config.php']
},
...
}
},
})
Тип: Boolean
Значение по умолчанию: false
Удаляет только файлы, игнорируемые Git. Это может быть полезно для перестройки всего с нуля, но сохранения файлов, созданных вручную (опционально).
Тип: Boolean
Значение по умолчанию: false
Не использует стандартные правила игнорирования, считываемые из .gitignore
(для каждого каталога) и `$GIT_DIR/info/exclude$, но всё ещё использует правила игнорирования, заданные с помощью этой опции. Это позволяет удалить все неотслеживаемые файлы, включая продукты сборки. Это можно использовать (возможно, в сочетании с git reset) для создания чистого рабочего каталога для тестирования чистой сборки (опционально).
Тип: Boolean
Значение по умолчанию: false
Убирает неотслеживаемые каталоги в дополнение к неотслеживаемым файлам. Если неотслеживаемый каталог управляется другим репозиторием Git, он по умолчанию не удаляется (опционально).
Отправляет данные на удалённый сервер.
Добавьте раздел с именем gitpush
в объект данных, переданный в grunt.initConfig()
в файле Gruntfile вашего проекта.
grunt.initConfig({
gitpush: {
your_target: {
options: {
// Target-specific options go here.
}
}
}
})
Тип: String
Значение по умолчанию: 'origin'
Удаленный сервер, куда нужно отправить данные. Например: origin
, heroku
. Задача отправит данные на origin
, если значение не установлено.
Тип: String
Значение по умолчанию: null
Ветвь удалённого сервера, куда нужно отправить данные. Например: master
, develop
. Задача отправит данные в отслеживаемую ветвь, если значение не установлено.
Тип: Boolean
Значение по умолчанию: false
Добавит флаг --all
к отправке данных.
Тип: Boolean
Значение по умолчанию: false
Добавит флаг --tags
к отправке данных.
Тип: Boolean
Значение по умолчанию: false
Добавит флаг --set-upstream
к отправке данных.
Тип: Boolean
Значение по умолчанию: false
Добавит флаг --force
к отправке данных.
Загружает данные с удалённого сервера.
Добавьте раздел с именем gitpull
в объект данных, переданный в grunt.initConfig()
в файле Gruntfile вашего проекта. Вы можете изменить удаленный сервер (по умолчанию это origin) и добавить ветку, которую хотите загрузить.
grunt.initConfig({
gitpull: {
your_target: {
options: {}
}
}
})
Тип: String
Значение по умолчанию: origin
Удалённый сервер, откуда нужно загрузить данные. Задача не завершится ошибкой, если origin не установлен, и загрузит данные с сервера по умолчанию git origin.
Тип: String
Значение по умолчанию: master
Ветвь, откуда нужно загрузить данные. Например: master
, develop
(необязательно).
Скачивает объекты и ссылки из репозитория.
Добавьте раздел с именем gitfetch
в объект данных, переданный в grunt.initConfig()
в файле Gruntfile вашего проекта.
grunt.initConfig({
gitfetch: {
your_target: {
options: {
all: true
}
}
}
})
Тип: String
Значение по умолчанию: null
Репозиторий, откуда вы хотите скачать данные. Когда удалённый сервер не установлен. Задача «gitarchive»
Архивирует ветку.
Обзор
В файле Gruntfile вашего проекта добавьте раздел с именем gitarchive
в объект данных, передаваемый в grunt.initConfig()
.
grunt.initConfig({
gitarchive: {
master: {
options: {
format: 'tar.gz',
prefix: 'your-project-name/',
treeIsh: 'master',
output: '/tmp/your-project-name.tar.gz',
path: ['README', 'LICENSE']
}
}
}
})
Опции
options.treeIsh
— тип: String
, значение по умолчанию: 'master'
.
Дерево или фиксация для создания архива. Например: 'master'
или хэш коммита.
options.format
— тип: String
, значение по умолчанию: 'tar'
.
Формат результирующего архива: 'tar'
, 'tar.gz'
, 'zip'
. Если эта опция не задана и указан выходной файл, формат выводится из имени файла (например, запись в «foo.zip» делает вывод в формате zip). В противном случае вывод будет в формате tar.
options.prefix
— тип: String
, значение по умолчанию: нет.
Добавляет флаг --prefix
. Не забудьте поставить косую черту в конце.
options.output
— тип: String
, значение по умолчанию: нет.
Добавляет флаг --output
. Записывает архив в файл вместо stdout
.
options.remote
— тип: String
, значение по умолчанию: нет.
Добавляет флаг --remote
. Вместо создания архива tar из локального репозитория извлекает архив tar из удалённого репозитория.
options.path
— тип: Array
, значение по умолчанию: нет.
Без дополнительного параметра path
все файлы и подкаталоги текущего рабочего каталога включаются в архив. Если указан один или несколько путей, включаются только они.
Задача «gitlog»
Логирует историю коммитов и сохраняет результат в свойстве grunt или вызывает функцию обратного вызова с результатом. Результат представляет собой массив объектов со следующими свойствами:
Обзор
В вашем проекте's Gruntfile добавьте раздел с именем gitlog в объект данных, переданный в grunt.initConfig()
.
grunt.initConfig({
gitlog: {
mytarget: {
options: {
prop: 'gitlog.mytarget.result',
from: 'v0.2.0',
to: 'v0.2.2'
}
}
}
})
Опции
options.prop
— тип: String
, значение по умолчанию: 'gitlog.<target name>.result'
.
Свойство grunt, в которое следует сохранить результаты.
options.callback
— тип: Function
, значение по умолчанию: нет.
Функция обратного вызова, которую следует вызвать с результатами журнала.
options.pretty
— тип: String
.
Формат вывода журнала.
options.number
— тип: Int
, значение по умолчанию: нет.
Количество экспортируемых записей журналов.
options.from
— тип: String
, значение по умолчанию: нет.
Хэш коммита, тег и т. д., с которого следует начать.
options.to
— тип: String
, значение по умолчанию: нет.
Хэш коммита, тег и т. д., на котором следует остановиться. По умолчанию используется значение 'HEAD'
, если указано from
.
options.dateOrder
— тип: Boolean
, значение по умолчанию: нет.
Следует ли упорядочивать по дате. По умолчанию имеет значение true, когда указаны options.after
или options.before
.
options.after
— тип: Date
, значение по умолчанию: нет.
Дата, с которой следует начать. Вызывает options.dateOrder
, чтобы иметь значение true.
options.before
— тип: Date
, значение по умолчанию: нет.
Дата, на которой следует остановиться. Вызывает options.dateOrder
, чтобы иметь значение true.
options.noMerges
— тип: Boolean
, значение по умолчанию: true.
Следует ли включать слияния в журналы. options.callback
Тип: Function
Значение по умолчанию: нет
Функция обратного вызова, которую нужно вызвать с результатом.
grunt.initConfig({
gitdescribe: {
latest: {
options: {
abbrev: 0,
callback: function (result) { ... },
}
}
},
});
Для получения полной информации обо всех возможных кодах см. документацию git describe https://git-scm.com/docs/git-describe.
Управление набором репозиториев («пультов»), ветки которых вы отслеживаете.
Тип: Boolean
Значение по умолчанию: false
Будьте немного более подробными и покажите удалённый URL после имени.
Тип: Object
Значение по умолчанию: undefined
Добавляет удалённый элемент с именем <name> для репозитория по адресу <url>.
Пример:
grunt.initConfig({
gitremote: {
mytargat: {
options: {
add: { name: 'upstream', url: 'remote_uri' }
}
}
},
});
Тип: String
Значение по умолчанию: undefined
Тип: Boolean
Значение по умолчанию: undefined
Тип: Boolean
Значение по умолчанию: undefined
Устанавливает флаг --tags или --no-tags.
Тип: String
Значение по умолчанию: undefined
Пример:
grunt.initConfig({
gitremote: {
mytargat: {
options: {
add: { name: 'upstream', url: 'remote_uri' },
t: 'branch',
f: true,
tags: true, //true => --tags, false => --no-tags
mirror: 'fetch' //<fetch | push>
}
}
},
});
Тип: Object
Значение по умолчанию: undefined
Переименовывает удалённый элемент с именем <old> в <new>.
Пример:
grunt.initConfig({
gitremote: {
mytargat: {
options: {
rename: { old: 'origin', new : 'upstream' }
}
}
},
});
Тип: String
Значение по умолчанию: undefined
Удаляет удалённый элемент с именем <имя>.
Тип: String
Значение по умолчанию: undefined
Задаёт или удаляет ветку по умолчанию (т. е. цель символической ссылки refs/remotes//HEAD) для указанного удалённого элемента.
Тип: Boolean
Значение по умолчанию: undefined
Тип: Boolean
Значение по умолчанию: undefined
Тип: String
Значение по умолчанию: undefined
Пример:
grunt.initConfig({
gitremote: {
mytargat: {
options: {
sethead: 'name',
branch: 'branch'
}
},
mytargat2: {
options: {
sethead: 'name',
auto: true
}
},
mytargat3: {
options: {
sethead: 'name',
delete: true
}
}
},
});
Тип: Object
Значение по умолчанию: undefined
Изменяет список веток, отслеживаемых указанным удалённым элементом.
Пример:
grunt.initConfig({
gitremote: {
mytargat: {
options: {
setbranches: { name: 'name', branch: 'branch' }
}
}
},
});
Тип: Boolean
Значение по умолчанию: undefined
Вместо замены списка отслеживаемых веток добавляет его.
Пример:
grunt.initConfig({
gitremote: {
mytargat: {
options: {
setbranches: { name: 'name', branch: 'branch' },
add: true
}
}
},
});
Тип: String
Значение по умолчанию: undefined
Получает URL-адреса для удалённого элемента.
Тип: Boolean
Значение по умолчанию: undefined
Тип: Boolean
Значение по умолчанию: undefined
Тип: Object
Значение по умолчанию: undefined
Меняет URL-адреса для удалённого элемента.
Пример:
grunt.initConfig({
gitremote: {
mytargat: {
options: {
... ```
seturl: { name: 'name', url: 'newurl', oldurl: 'oldurl' }
}
}
},
});
suboptions for seturl
options.push — тип: Boolean
, значение по умолчанию: не определено.
Манипулируют URL-адресами push вместо получения URL-адресов.
options.add — тип: Boolean
, значение по умолчанию: не определено.
Вместо изменения существующих URL-адресов добавляется новый URL-адрес.
options.delete — тип: Boolean
, значение по умолчанию: не определено.
Вместо изменения существующих URL-адресов удаляются все URL-адреса, соответствующие регулярному выражению , для удалённого . Попытка удалить все непуш-URL-адреса является ошибкой.
Пример:
grunt.initConfig({
gitremote: {
mytargat: {
options: {
seturl: { name: 'name', url: 'newurl' },
push: true
}
},
mytargat2: {
options: {
seturl: { name: 'name', url: 'newurl' },
add: true
}
},
mytargat3: {
options: {
seturl: { name: 'name', url: 'newurl' },
delete: true
}
}
},
});
String
, значение по умолчанию: не определено.
Предоставляет некоторую информацию об удалённом <name>.Suboptions for show
options.n — тип: Boolean
, значение по умолчанию: не определено.
Сначала не запрашиваются удалённые заголовки с помощью git ls-remote ; вместо этого используется кэшированная информация.
prune — тип: String
, значение по умолчанию: не определено.
Удаляет устаревшие ссылки, связанные с <name>.
update — тип: Array
, значение по умолчанию: не определено.
Извлекает обновления для удалённых устройств или групп удалённых устройств в репозитории, как определено в remotes.<group>.
Пример:
grunt.initConfig({
gitremote: {
mytargat: {
options: {
update: ['origin', 'upstream']
}
}
},
});
Suboptions for update
prune — тип: Boolean
, значение по умолчанию: не определено.
Запускает обрезку для всех обновлённых удалённых устройств.
callback — тип: Function
, значение по умолчанию: нет.
Функция обратного вызова для вызова с результатом.
grunt.initConfig({
gitremote: {
mytarget: {
options: {
geturl: 'origin',
callback: function (result) { ... },
}
}
},
});
Для получения полной информации обо всех возможных кодах см. документацию по git remote (https://git-scm.com/docs/git-remote).
Вместо официального руководства по стилю позаботьтесь о сохранении существующего стиля кодирования. Добавьте модульные тесты для любой новой или изменённой функциональности. Отлаживайте и тестируйте свой код с помощью Grunt (http://gruntjs.com/).
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )