Це команда git-rev-parse, яку можна запустити в постачальнику безкоштовного хостингу OnWorks, використовуючи одну з наших численних безкоштовних робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS
ПРОГРАМА:
ІМ'Я
git-rev-parse-Виберіть та масажуйте параметри
СИНТАКСИС
мерзотник rev-парс [ --опція ] ...
ОПИС
Багато порцелянових команд Git використовують суміш прапорів (тобто параметрів, які починаються з a
тире -) і параметри, призначені для базового мерзотник рев-лист команду, яку вони використовують всередині
а також прапори та параметри для інших команд, які вони використовують після мерзотник рев-лист, це
команда використовується для розрізнення між ними.
ВАРІАНТИ
операція Режими
Кожен з цих параметрів повинен з’являтися першим у командному рядку.
--парсеопт
Скористайтесь мерзотник rev-парс у режимі розбору параметрів (див. розділ PARSEOPT нижче).
--sq-цитата
Скористайтесь мерзотник rev-парс в режимі цитування оболонки (див. розділ SQ-QUOTE нижче). На відміну від
параметр --sq нижче, цей режим виконує лише цитування. Більше нічого не робиться для командування
Вхід
Опції та цінності --парсеопт
--keep-dashdash
Має значення лише в режимі --parseopt. Вказує аналізатору параметрів повторити перший --
зустрівся замість того, щоб пропустити його.
--stop-at-non-option
Має значення лише в режимі --parseopt. Дозволяє аналізатору параметрів зупинитися на першому місці
аргумент без варіантів. Це можна використовувати для розбору підкоманд, які приймають параметри
самі
--довго застряг
Має значення лише в режимі --parseopt. Виведіть варіанти в їх довгому вигляді if
доступні, а їхні аргументи застрягли.
Опції та цінності фільтрація
--лише обороти
Не виводьте прапори та параметри, не призначені для мерзотник рев-лист команда
--без оборотів
Не виводьте прапори та параметри, призначені для мерзотник рев-лист команда
-- прапори
Не виводьте параметри без прапора.
--без прапорів
Не виводити параметри прапора.
Опції та цінності Вихід
--за замовчуванням
Якщо параметра, заданого користувачем, немає, використовуйте замість цього.
--префікс
Поводьтеся ніби мерзотник rev-парс був викликаний з підкаталог робочого
дерево. Будь-які відносні назви файлів розв’язуються так, ніби вони мають префікс і буде
надруковані в такому вигляді.
Це можна використовувати для перетворення аргументів у команду, що виконується в підкаталозі, щоб вони
можна використовувати після переходу на верхній рівень сховища. Наприклад:
prefix=$(git rev-parse --show-prefix)
компакт-диск "$(git rev-parse --show-toplevel)"
eval "set -- $(git rev-parse --sq --prefix "$prefix" "$@")"
--підтвердити
Переконайтеся, що вказано лише один параметр і його можна перетворити на необроблений
20-байтовий SHA-1, який можна використовувати для доступу до бази даних об'єктів. Якщо так, передайте його в
стандартний вихід; інакше помилка виходить.
Якщо ви хочете переконатися, що вихідні дані дійсно називають об’єкт у вашому об’єкті
бази даних та/або може використовуватися як об’єкт певного типу, який вам потрібен, ви можете додати
^{type} оператор відлущування до параметра. Наприклад, git rev-parse "$VAR^{commit}"
переконається, що $VAR називає існуючий об’єкт, який є комітом (тобто комітом або
анотований тег, який вказує на фіксацію). Щоб переконатися, що $VAR називає існуючий
об’єкт будь-якого типу, можна використовувати git rev-parse "$VAR^{object}".
-q, -- тихо
Має значення лише в режимі --verify. Не виводьте повідомлення про помилку, якщо перший аргумент
не є дійсним ім'ям об'єкта; замість цього безшумно вийти з ненульовим статусом. SHA-1 для
дійсні імена об’єктів друкуються в стандартний вихідний код у разі успіху.
--кв
Зазвичай висновок робиться по одному рядку на кожен прапор і параметр. Ця опція робить вихід a
один рядок, належним чином зазначений для споживання оболонкою. Корисно, коли ви очікуєте свого
параметр, який містить пробіли та нові рядки (наприклад, при використанні pickaxe -S with мерзотник
різниця-*). На відміну від параметра --sq-quote, введення команди все ще інтерпретується
як звичайно.
-- ні
Показуючи назви об’єктів, ставте до них префікс ^ і смуга ^ префікс з імен об'єктів
які вже є.
--abbrev-ref[=(суворий|вільний)]
Недвозначне коротке ім’я назви об’єктів. Параметр core.warnAmbiguousRefs є
використовується для вибору режиму суворих скорочень.
--short, --short=число
Замість виведення повних значень SHA-1 імен об’єктів спробуйте скоротити їх
коротша унікальна назва. Якщо довжина не вказана, використовується 7. Мінімальна довжина 4.
-- символічний
Зазвичай імена об’єктів виводяться у формі SHA-1 (з можливістю ^ префікс); це
Параметр дозволяє виводити їх у вигляді, максимально наближеному до вихідного введення.
--символічне-повне ім'я
Це схоже на --symbolic, але в ньому пропущено введення, яке не є посиланням (тобто гілка або
назви тегів; або, якщо забажаєте, форма "керівники/господар" з більш чіткими визначеннями
назвіть гілку "master", якщо є, на жаль, названий тег "master"), і покажіть
їх як повні імена (наприклад, "refs/heads/master").
Опції та цінності Об'єкти
--все
Показати всі посилання, знайдені в refs/.
--branches[=шаблон], --теги[=шаблон], --remotes[=шаблон]
Показати всі гілки, теги або гілки віддаленого відстеження відповідно (тобто знайдені посилання
у refs/heads, refs/tags або refs/remotes, відповідно).
Якщо вказано шаблон, показуються лише посилання, що відповідають заданому глобулу оболонки. Якщо
шаблон не містить символу глобінгу (?, * або [), він перетворюється на префікс
відповідати, додавши /*.
--glob=шаблон
Показати всі посилання, що відповідають шаблону оболонки glob. Якщо шаблон не починається
з refs/, це автоматично додається до початку. Якщо шаблон не містить a
символу globbing (?, * або [), він перетворюється на відповідність префіксу шляхом додавання /*.
--виключити=
Не включайте відповідність посилань що наступні --all, --branches, --tags,
--remotes або --glob інакше б розглянули. Повтори цього варіанту накопичуються
шаблони виключення до наступного --all, --branches, --tags, --remotes або --glob
параметр (інші параметри або аргументи не очищають накопичені шаблони).
Наведені шаблони не повинні починатися з refs/heads, refs/tags або refs/remotes, коли
застосовується до --branches, --tags або --remotes відповідно, і вони повинні починатися з
refs/ при застосуванні до --glob або --all. Якщо слід /* призначений, його треба дати
явно.
--disambiguate=
Показати кожен об’єкт, назва якого починається з даного префікса. The має бути на
щонайменше 4 шістнадцяткові цифри, щоб уникнути переліку кожного об’єкта в
репозиторій помилково.
Опції та цінності Файли
--local-env-vars
Перелік змінних середовища GIT_*, які є локальними для сховища (наприклад, GIT_DIR або
GIT_WORK_TREE, але не GIT_EDITOR). Перераховані лише назви змінних, а не
їх значення, навіть якщо вони встановлені.
--гіт-реж
Показати $GIT_DIR, якщо визначено. В іншому випадку вкажіть шлях до каталогу .git. Шлях
показано, коли відносно, є відносно поточного робочого каталогу.
Якщо $GIT_DIR не визначено і поточний каталог не знаходиться в Git
репозиторій або робоче дерево друкують повідомлення в stderr і виходять із ненульовим статусом.
--git-common-dir
Показати $GIT_COMMON_DIR, якщо визначено, інакше $GIT_DIR.
--is-inside-git-dir
Коли поточний робочий каталог знаходиться нижче каталогу сховища, надрукуйте "true",
інакше "неправда".
--is-inside-work-tree
Коли поточний робочий каталог знаходиться всередині робочого дерева сховища print
«істинно», інакше «неправда».
--is-gole-repository
Коли сховище відкрито, друкуйте "true", інакше "false".
--resolve-git-dir
Перевірте, якщо є дійсним репозиторієм або файлом git, який вказує на дійсне сховище,
і надрукуйте розташування сховища. Якщо є git-файлом, а потім вирішений
надруковано шлях до справжнього сховища.
--git-шлях
Вирішити "$GIT_DIR/ " і приймає інші змінні переміщення шляху, наприклад
$GIT_OBJECT_DIRECTORY, $GIT_INDEX_FILE... до уваги. Наприклад, якщо
Для $GIT_OBJECT_DIRECTORY встановлено значення /foo/bar, потім "git rev-parse --git-path objects/abc"
повертає /foo/bar/abc.
--show-cdup
Коли команда викликається з підкаталогу, покажіть шлях до верхнього рівня
каталог відносно поточного каталогу (зазвичай послідовність "../" або an
порожній рядок).
--показати-префікс
Коли команда викликається з підкаталогу, покажіть шлях поточного
каталог відносно каталогу верхнього рівня.
--show-toplevel
Показати абсолютний шлях до каталогу верхнього рівня.
--спільний-індекс-шлях
Показати шлях до файлу спільного індексу в режимі розділеного індексу або порожній, якщо його немає
режим розділеного індексу.
Інше Опції
--since=рядок дати, --after=рядок дати
Проаналізуйте рядок дати та виведіть відповідний параметр --max-age= для мерзотник
рев-лист.
--until=рядок дати, --before=рядок дати
Проаналізуйте рядок дати та виведіть відповідний параметр --min-age= для мерзотник
рев-лист.
...
Прапори та параметри для аналізу.
УКАЗАННЯ РЕВІЗІЇ
Параметр перегляду зазвичай, але не обов’язково, називає об’єкт фіксації. Воно використовує
те, що називається розширений SHA-1 синтаксису. Ось різні способи написання назв об’єктів. The
ті, які перераховані в кінці цього списку, називають дерева імен і краплі, що містяться в коміті.
, напр dae86e1950b1277e545cee180551750029cfe735, dae86e
Повне ім’я об’єкта SHA-1 (40-байтовий шістнадцятковий рядок) або провідний підрядок, який
є унікальним у сховищі. Наприклад, dae86e1950b1277e545cee180551750029cfe735 і
dae86e обидва іменують один і той самий об'єкт фіксації, якщо у вашому сховищі немає іншого об'єкта
ім'я об'єкта якого починається з dae86e.
, напр v1.7.4.2-679-g3bee7fb
Вихід з git describe; тобто найближчий тег, необов'язково за яким слідують тире та a
кількість комітів, за яким слід тире, a g, а також скорочену назву об’єкта.
, напр майстер, керівники/майстер, refs/heads/master
Символічне ім'я посилання. напр майстер зазвичай означає об'єкт фіксації, на який посилається
refs/heads/master. Якщо у вас є обидва керівники/майстер та теги/майстер, Ви можете
прямо сказати керівники/майстер щоб сказати Git, яку саме ви маєте на увазі. Коли неоднозначний, а
неоднозначність, якщо взяти перший матч за такими правилами:
1 Якщо $GIT_DIR/ існує, це те, що ви маєте на увазі (це зазвичай лише корисно
та цінності ГОЛОВА, FETCH_HEAD, ORIG_HEAD, MERGE_HEAD та ВИШНЕВА_ГОЛОВКА);
2. інакше, refs/ якщо він існує;
3. інакше, refs/tags/ якщо він існує;
4. інакше, refs/heads/ якщо він існує;
5. інакше, refs/remotes/ якщо він існує;
6. інакше, refs/remotes/ /ГОЛОВА якщо воно існує.
ГОЛОВА називає коміт, на якому базуються зміни в робочому дереві.
FETCH_HEAD записує гілку, яку ви отримали з віддаленого сховища за допомогою вашого
останній виклик git fetch. ORIG_HEAD створюється командами, які переміщують ваш ГОЛОВА
різким чином, щоб зафіксувати положення ГОЛОВА до їх експлуатації, т
що ви можете легко змінити кінчик гілки назад у стан до того, як ви запустили
Ними. MERGE_HEAD записує коміти, які ви об’єднуєте у свою гілку
коли ви запускаєте git merge. ВИШНЕВА_ГОЛОВКА записує комміт, яким ви є
cherry-pick, коли ви запускаєте git cherry-pick.
Зверніть увагу, що будь-який з посилання/* наведені вище випадки можуть походити або з $GIT_DIR/refs
каталогу або з $GIT_DIR/packed-refs файл. У той час як кодування назви посилання є
не вказано, кращим є UTF-8, оскільки деяка обробка виводу може передбачати імена ref
UTF-8.
@
@ один є ярликом для ГОЛОВА.
@{ }, напр master@{вчора}, ГОЛОВКА@{5 протокол тому}
Посилання, за яким слідує суфікс @ зі специфікацією дати, укладеною в дужку
(напр {вчора}, {1 місяць 2 тижнів 3 днів 1 годину 1 другий тому} or {1979-02-26
18:30:00}) визначає значення ref на попередній момент часу. Цей суфікс може
використовуватиметься лише відразу після ім’я ref, і ref повинен мати існуючий журнал
($GIT_DIR/logs/). Зауважте, що це відображає ваш стан місцевий ref на даний момент
час; наприклад, що було у вашому локальному майстер відділення минулого тижня. Якщо хочеш подивитись
фіксації, зроблені в певний час, див --з тих пір та --доки.
@{ }, напр майстер@{1}
Посилання, за яким слідує суфікс @ з порядковою специфікацією, укладеною в дужку
(напр 1 {}, 15 {}) визначає n-е попереднє значення цього посилання. Наприклад майстер@{1}
є безпосереднім попереднім значенням майстер в той час як майстер@{5} є 5-м попереднім значенням
майстер. Цей суфікс можна використовувати лише відразу після назви посилання, і посилання обов’язково
мати наявний журнал ($GIT_DIR/logs/).
@{ }, напр @{1}
Ви можете використовувати @ побудуйте з порожньою частиною ref, щоб отримати запис reflog
поточне відділення. Наприклад, якщо ви перебуваєте у відділенні блабла потім @{1} означає те ж, що і
блабла@{1}.
@{- }, напр @{-1}
Конструкція @{- } означає th гілка/фіксація вилучена до поточної
один.
@{upstream}, напр master@{upstream}, @{u}
Суфікс @{нагорі} до назви філії (коротка форма @{u}) відноситься до
гілки, над якою гілка, зазначена в імені філії, налаштована для створення (настроєно
з відділенням. .дистанційне та відділення. .злиття). Відсутня назва гілки за замовчуванням
поточний.
@{push}, напр master@{push}, @{push}
Суфікс @{push} повідомляє про гілку, "куди ми б натиснули", якби запущено git push
під час перевірки імені філії (або поточного ГОЛОВА якщо не вказано назву філії).
Оскільки наше призначення push знаходиться у віддаленому сховищі, ми, звичайно, повідомляємо про локальне
відстеження гілки, яка відповідає цій гілці (тобто щось у refs/remotes/).
Ось приклад, щоб було зрозуміліше:
$ git config push.default поточний
$ git config remote.pushdefault myfork
$ git checkout -b mybranch origin/master
$ git rev-parse --symbolic-full-name @{upstream}
refs/remotes/origin/master
$ git rev-parse --symbolic-full-name @{push}
refs/remotes/myfork/mybranch
Зверніть увагу на приклад, що ми налаштовуємо трикутний робочий процес, де ми витягуємо з одного
розташування та натиснути на інше. У нетрикутному робочому процесі, @{push} те саме, що
@{нагорі}, і в цьому немає потреби.
^, напр ГОЛОВКА^, v1.5.1^0
Суфікс ^ до параметра ревізії означає першого батьківського об’єкта фіксації. ^
означає й батько (тобто ^ еквівалентна ^1). Як особливе правило,
^0 означає сам коміт і використовується, коли це ім'я об'єкта тега
об'єкт, який посилається на об'єкт фіксації.
~, напр майстер~3
Суфікс ~ до параметра ревізії означає об’єкт фіксації, який є th
предок покоління названого об'єкта фіксації, що слідує лише за першими батьками. тобто
~3 еквівалентна ^^^ що еквівалентно ^1^1^1. Дивіться нижче для
ілюстрація використання цієї форми.
^{ }, напр v0.99.8^{commit}
Суфікс ^ за яким слідує ім'я типу об'єкта, укладене в дужку, означає розіменування
об'єкт на рекурсивно до об'єкта типу знайдено або об’єкт
більше не можна розіменовувати (у цьому випадку, barf). Наприклад, якщо це
скоєння, ^{здійснити} описує відповідний об'єкт фіксації. Аналогічно, якщо
це дерево, ^{дерево} описує відповідний об'єкт дерева. ^0 is
скорочення для ^{здійснити}.
rev^{об'єкт} можна використовувати, щоб переконатися об називає об’єкт, який існує без нього
що вимагає об бути тегом і без розіменування об; тому що тег – це вже an
об’єкта, його не потрібно розіменовувати навіть один раз, щоб дістатися до об’єкта.
rev^{tag} можна використовувати для забезпечення цього об ідентифікує існуючий об'єкт тега.
^{}, напр v0.99.8^{}
Суфікс ^ за яким слідує порожня пара дужок, означає, що об’єкт може бути тегом і
розіменовувати тег рекурсивно, доки не буде знайдений об’єкт без тегу.
^{/ }, напр ГОЛОВА^{/фікс противний помилка}
Суфікс ^ до параметра перегляду, за яким слідує пара дужок, яка містить текстовий світлодіод
через косу риску, те саме, що :/виправити противний помилка синтаксис нижче, за винятком того, що він повертає
наймолодший коміт зіставлення, який доступний з перед тим ^.
:/, напр :/виправити противний помилка
Двокрапка, а потім коса риска, а потім текст, імена коміту, повідомлення про фіксацію
відповідає вказаному регулярному виразу. Це ім’я повертає наймолодший збіг
commit, який доступний з будь-якого ref. Якщо повідомлення про фіксацію починається з a ! ви
треба це повторити; особлива послідовність :/!, а потім щось інше !, Є
зарезервовано на даний момент. Регулярний вираз може відповідати будь-якій частині повідомлення про фіксацію. До
відповідати повідомленням, які починаються з рядка, можна використовувати, наприклад :/^foo.
:, напр HEAD: README, :README, майстер:./README
Суфікс : за яким слідує шлях, який називає крапку або дерево на заданому шляху в дереві
об’єкт, названий частиною перед двокрапкою. : шлях (з порожньою частиною перед
двокрапка) є окремим випадком синтаксису, описаного далі: вміст, записаний в індексі
на заданому шляху. Шлях, що починається з ./ or .. / є відносно поточної робочої
каталог. Зазначений шлях буде перетворено на відносний до кореня робочого дерева
каталог. Це найбільш корисно для звернення до краплі або дерева з коміту або дерева
має таку саму структуру дерева, що й робоче дерево.
: :, напр :0:README, :README
Двокрапка, за якою необов’язково слідує номер етапу (від 0 до 3) і двокрапка, за якою слід а
path, називає об'єкт BLOB-об'єкта в індексі за заданим шляхом. Відсутній номер сцени (і
двокрапка, що йде за ним) називає запис етапу 0. Під час злиття етап 1 є
загальний предок, етап 2 є версією цільової гілки (зазвичай поточною
гілка), а етап 3 – це версія гілки, яка об’єднується.
Ось ілюстрація Джона Лелігера. Обидва вузли фіксації B і C є батьками коміту
вузол A. Батьківські коміти впорядковані зліва направо.
GHIJ
\ / \ /
DEF
\ | / \
\ | / |
\|/ |
До н
\ /
\ /
A
A = = A^0
B = A^ = A^1 = A~1
C = A^2 = A^2
D = A^^ = A^1^1 = A~2
E = B^2 = A^^2
F = B^3 = A^^3
G = A^^^ = A^1^1^1 = A~3
H = D^2 = B^^2 = A^^^2 = A~2^2
I = F^ = B^3^ = A^^3^
J = F^2 = B^3^2 = A^^3^2
УКАЗАННЯ ДИАПАЗОНИ
Команди для проходження історії, такі як git log, працюють на наборі комітів, а не лише на одному
здійснити. Для цих команд, вказуючи одну ревізію з позначеннями, описаними в
попередній розділ означає набір комітів, доступних з цього коміту, після коміту
ланцюг предків.
Щоб виключити коміти, доступні з коміту, префікс ^ використовується позначення. напр ^r1 r2 засоби
фіксує доступний з r2 але виключити доступні з r1.
Ця операція набору з’являється настільки часто, що для неї існує скорочення. Коли у вас двоє
зобов'язується r1 та r2 (названий відповідно до синтаксису, наведеного у ВКАЗАННЯ РЕВІЗІЙ вище),
ви можете запитати коміти, які доступні з r2, за винятком тих, які доступні з
r1 за ^r1 r2 і це можна записати як r1..r2.
Подібне позначення r1...r2 називається симетричною різницею r1 та r2 і визначається як
r1 r2 -- ні $(git злиття-база --все r1 r2). Це набір комітів, які доступні
з будь-якого з r1 or r2 але не від обох.
У цих двох скороченнях ви можете опустити один кінець і залишити його за замовчуванням як HEAD. Наприклад,
походження.. - це стенограма для походження..ГОЛ і запитує: «Що я зробив після того, як роздвоївся з
гілка походження?" Так само, ..походження - це стенограма для ГОЛОВ..походження і запитує: «Що зробив
походження, оскільки я розщепився від них?" Зверніть увагу на це .. означало б ГОЛОВКА..ГОЛОВКА який є порожнім
діапазон, який одночасно доступний і недоступний з HEAD.
Два інших скорочення для іменування набору, який формується комітом і його батьківськими комітами
існують. The r1^@ позначення означає всіх батьків r1. r1^! включає фіксацію r1 але виключає все
її батьків.
Підіб'ємо підсумки:
Включити коміти, доступні від (тобто предків) .
^
Виключити коміти, які доступні (тобто предки) .
..
Включіть коміти, з яких можна отримати доступ але виключити ті, які доступні
від . Коли або або пропущено, за замовчуванням ГОЛОВА.
...
Включіть коміти, доступні з будь-якого або але виключити ті, що
доступні з обох. Коли або або пропущено, за замовчуванням ГОЛОВА.
^@, напр ГОЛОВКА^@
Суфікс ^ за яким слідує знак at, це те саме, що перераховувати всіх батьків
(це означає, включати все, що доступне від батьків, але не сам коміт).
^!, напр ГОЛОВКА^!
Суфікс ^ після якого стоїть знак оклику, те саме, що дати фіксацію , А потім
всі його батьки з префіксом ^ щоб виключити їх (та їхніх предків).
Ось кілька прикладів:
DGHD
DFGHIJDF
^GDHD
^DBEIJFB
B..CC
B...CGHDEBC
^DBCEIJFBC
CIJFC
C^@ IJF
C^! C
F^! DGHDF
ПАРСЕОПТ
У режимі --parseopt, мерзотник rev-парс допомагає масувати параметри, щоб привести до сценаріїв оболонки
ті ж можливості, які мають вбудовані C. Він працює як нормалізатор параметрів (наприклад, розбиває одиночний
перемикає агрегатні значення), трохи схожий на getopt(1) робить.
Він приймає на стандартний вхід специфікацію параметрів для аналізу та розуміння,
і відображає на стандартному виводі відповідний рядок sh(1) eval для заміни
аргументи з нормованими. У разі помилки він виводить використання за стандартною помилкою
потік і виходить з кодом 129.
Примітка. Обов’язково вводьте результат у лапки, передаючи його в eval. Нижче наведено приклад.
вхід сформований
мерзотник rev-парс --парсеопт Формат введення повністю текстовий. Він складається з двох частин, розділених між собою
рядок, який містить лише --. Рядки перед роздільником (має бути один або кілька).
використовується для використання. Рядки після роздільника описують параметри.
Кожен рядок параметрів має такий формат:
* ? SP+ допомога LF
його форматом є короткий символ параметра, потім довга назва параметра, розділена символом a
кома. Обидві частини не потрібні, хоча принаймні одна необхідна. Не може містити
будь-який з символів. h,help, dry-run і f є прикладами правильних
.
мають *, =, ? або !.
· Використовуйте =, якщо параметр приймає аргумент.
· Використовувати? це означає, що параметр приймає необов’язковий аргумент. Ви, мабуть, хочете
використовуйте режим --stuck-long, щоб мати можливість однозначно проаналізувати необов'язковий аргумент.
· Використовуйте *, щоб означати, що цей параметр не повинен бути перерахований у використанні, створеному для
-h аргумент. Він показаний для --help-all, як задокументовано в gitcli(7).
· Використовуйте! щоб не робити відповідну заперечену довгу опцію доступною.
, якщо вказано, використовується як ім’я аргументу у виводі довідки, for
варіанти, які беруть аргументи. закінчується першим пробілом. це є
прийнято використовувати тире для розділення слів у підказці аргументу з кількох слів.
Залишок рядка після видалення пробілів використовується як довідка, пов’язана з
варіант.
Порожні рядки ігноруються, а рядки, які не відповідають цій специфікації, використовуються як варіант
заголовки груп (починайте рядок з пробілу, щоб створити такі рядки навмисно).
Приклад
OPTS_SPEC="\
деяка команда [параметри] ...
some-command виконує foo і bar!
--
h, допоможіть показати довідку
foo якийсь чудовий варіант --foo
bar= якийсь класний параметр --bar з аргументом
baz=arg ще один чудовий варіант --baz з іменованим аргументом
qux?path qux може приймати аргумент шляху, але має значення сам по собі
Заголовок групи параметрів
C? варіант C з необов'язковим аргументом"
eval "$(echo "$OPTS_SPEC" | git rev-parse --parseopt -- "$@" || echo exit $?)"
Використання текст
Якщо у наведеному вище прикладі "$@" є -h або --help, буде показано такий текст використання:
використання: деяка команда [параметри] ...
some-command виконує foo і bar!
-h, --help показати довідку
--foo якийсь чудовий варіант --foo
--bar ... якийсь класний варіант --bar з аргументом
--баз ще один класний варіант --baz з іменованим аргументом
--qux[= ] qux може приймати аргумент шляху, але має значення сам по собі
Заголовок групи параметрів
-C[...] параметр C з необов'язковим аргументом
SQ-ЦИТАТА
У режимі --sq-quote, мерзотник rev-парс лунає на стандартному виводі один рядок, що підходить для
sh(1) оцінка. Цей рядок створюється шляхом нормалізації аргументів після --sq-quote. Нічого
окрім цитування аргументів виконується.
Якщо ви хочете, щоб введення команди все ще інтерпретувалося, як зазвичай мерзотник rev-парс перед
вихід міститься в лапках оболонки, дивіться параметр --sq.
Приклад
$ cat >your-git-script.sh <<\EOF
#!/ Бен / ш
args=$(git rev-parse --sq-quote "$@") # цитує аргументи, які надає користувач
command="git frotz -n24 $args" # і використовуйте його всередині ручної роботи
# командний рядок
eval "$command"
EOF
$ sh your-git-script.sh "a b'c"
ПРИКЛАДИ
· Надрукувати назву об'єкта поточного коміту:
$ git rev-parse --verify HEAD
· Надрукуйте ім'я об'єкта фіксації з версії у змінній оболонки $REV:
$ git rev-parse --verify $REV^{commit}
Це призведе до помилки, якщо $REV порожній або недійсна версія.
· Аналогічно вище:
$ git rev-parse --default master --verify $REV
але якщо $REV порожній, буде надруковано ім'я об'єкта фіксації з master.
GIT
Частина мерзотник(1) люкс
Використовуйте git-rev-parse онлайн за допомогою служб onworks.net