Описание тега git-plumbing

Команды "Сантехника" - это набор низкоуровневых команд Git, которые идеально подходят для написания сценариев.
2 ответа

Невозможно создать коммит, если аргумент имени файла, заданный для хеш-объекта, отличается от исходного имени файла

Я играю с git Сантехнические команды, чтобы лучше понять его внутренние механизмы. Я пытаюсь воспроизвести коммит без использования git commit команда. Давайте создадим blob: $ git init $ echo "I'm an apple" > apple.txt $ git hash-object -w apple…
22 май '18 в 15:10
2 ответа

Как восстановить дерево HEAD^?

tl;dr: возможно ли восстановить HEAD^дерево, если оно удалено, а не передано заранее, а все остальное не повреждено? Я случайно удалил часть моего .git, Я не совсем уверен, чего не хватает. Обнаружив, что git push не работал, я побежал git fsck: Che…
07 окт '14 в 03:51
2 ответа

Использование git read-tree без рабочего дерева

Я пытаюсь создать историю коммитов, используя команды git plumbing с голым репо. Я могу создать коммиты с одним безымянным объектом дерева, содержащим BLOB-объекты, но я не могу понять, как заставить этот безымянный объект дерева содержать другие об…
09 янв '15 в 14:34
1 ответ

Команда git plumbing для получения удаленного субмодуля

Я работаю с git plumbing и зеркальными (и, следовательно, голыми) репозиториями в файловой системе только для чтения. Я могу видеть существование субмодулей с git ls-tree, Я могу вывести их имя / путь и SHA1, но не могу найти способ получить удаленн…
18 дек '16 в 21:22
1 ответ

Сантехнический эквивалент для `git checkout -.`

Я ищу подходящую для сценариев сантехническую команду (или команды), которые эквивалентны высокоуровневой фарфоровой команде git checkout -- . Моя первоначальная мысль будет использовать git checkout-index --all --forceОднако это не полностью восста…
31 июл '17 в 17:59
1 ответ

Git сохранить все версии файла, добавленные с помощью команды index update-index?

Я пытаюсь понять команду git для слесарного дела и как ее низкоуровневые действия создают высокоуровневые действия, такие как add и commit. Я знаю, что каждый раз, когда я использовал: git update-index file.txt я создаю блоб из этого файла и создаю …
29 июл '15 в 17:02
1 ответ

Как я могу получить список файлов, измененных в git commit?

Мне нужен список файлов (в частности, обычных файлов, а не символических ссылок, каталогов, подмодулей и т. Д.), Измененных в git commit. Я знаю (как, например, в этом ответе), что git diff-tree --name-status дает довольно полезный вывод, показывая …
01 мар '19 в 07:01
1 ответ

Git сантехнические команды для обнаружения обновления субмодуля и получения хэшей в промежуточной области или рабочем каталоге

В режиме фарфора, git diff рекламирует изменения субмодуля: $ cd /opt/staging # This is the main Git repository $ cd software/zemke-rhyne # This is a submodule $ git pull $ git diff diff --git a/software/zemke-rhyne b/software/zemke-rhyne index 0fff…
01 ноя '17 в 22:40
2 ответа

Git plumbing: экспортировать дерево при коммите без касания HEAD/index

Я пишу программу, которая должна одновременно извлекать различные коммиты из одного и того же хранилища (как в этом вопросе, но одновременно). Фарфоровые команды, такие как git checkout а также git archive работать с индексом, поэтому каждый раз, ко…
13 май '15 в 18:16
1 ответ

Какие сантехнические команды достигают того же уровня, что и git add?

Я хотел бы лучше понять git-сантехнику, узнав, что на самом деле происходит при входе git add $DIRECTORY а также git add $FILE Как это работает? Грубая идея может быть получена, прочитав секцию git inners progit. Если $DIRECTORYэто каталог, что-то в…
09 май '16 в 11:38
1 ответ

Git: список тегов и даты / времени для всех коммитов в ветке

Для моего проекта на Python мне нужно получить данные из репозитория git. На данный момент я использую: git rev-list --pretty [branch] перечислить все коммиты в ветке с датой, временем и сообщением о коммите. Но так как репозиторий, с которым я рабо…
15 янв '17 в 17:07
2 ответа

Как программно сравнить файлы в двух ревизиях в git?

Я хочу сравнить две версии файла (которые существуют по разным путям) при разных коммитах в git. Я не хочу diff, я просто хочу знать, совпадают ли содержимое и режимы. Документация для diff-файлов не указывает никакого значения для возвращаемых знач…
21 июл '16 в 20:15
1 ответ

Git клон голого репо без капель

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

git: лучший способ определить неотключенные ветви в скрипте

В интерактивном режиме я могу использовать git branch -r --no-merged команда для определения удаленных веток, которые еще не были объединены. Тем не мение, git branch является командой фарфора и поэтому не подходит для использования в сценарии. Есть…
16 фев '15 в 15:34
1 ответ

Git ID не показывает никаких конфликтов для двоичных файлов

Мы проверяем двоичные файлы в git. Проблема в том, что git не показывает конфликты / изменения при слиянии. Он просто принимает файл и перезаписывает его даже при наличии конфликтов. Я не уверен, понимает ли git двоичные файлы или нет. Пожалуйста, п…
21 июл '15 в 05:45
1 ответ

Как тиражировать git-checkout, используя только сантехнические команды?

Я хотел бы избежать вызова фарфоровых команд из моих сценариев, но есть ли способ получить некоторые из поведения git checkout <commit> используя только сантехнические команды, такие как checkout-index? Меня особенно интересует влияние на рабо…
23 июл '14 в 21:44
3 ответа

Как мне найти дату коммита git, используя только сантехнические команды?

Уже есть вопрос о том, как найти дату коммита в Git. Тем не менее, все ответы на этот вопрос используют git show или же git log команды, которые являются фарфоровыми командами; стандартная мудрость в отношении фарфоровых команд, по-видимому, заключа…
08 окт '18 в 19:01
2 ответа

Получить все версии файла из одной ветки

Если в git-репозитории есть одна ветка, как мне получить все версии файла? Конечный желаемый результат - один новый выходной файл на версию (хотя печать всех версий в STDOUT также хороша, если легко определить степень каждой версии). Вот что я сейча…
01 авг '14 в 18:50
1 ответ

Как `git checkout -` работает на низком уровне

Как я могу получить предыдущую ветку / коммит, используя команды Git или файлы состояния? Изменить: Вопрос - как я могу получить эту информацию (предыдущую ветку или фиксацию) без выполнения реальной проверки? Это необходимо для инструмента, который…
04 ноя '17 в 20:49
1 ответ

Git - rebase фиксирует автор

В git-проекте, содержащем пример файла с именем file.txt Я хотел бы иметь сценарий, который: Анализирует текущее слово, разделенное пробелами (в примере для первой итерации это будет Enlargement). Может быть, с помощью регулярных выражений, таких ка…
18 июл '18 в 11:33