Как лучше всего просматривать файлы обновленного репозитория git bare? (концепция ls-дерева)
Я ищу способ увидеть файлы в репозитории Git голые, которые были обновлены другим удаленным, но без тянуть в моем хранилище.
Я попытаюсь описать мои сомнения, используя пример на местном уровне.
Я создаю папку, добавляю два файла и создаю новый репозиторий.
> mkdir stackOF && cd stackOF
> touch file1 file2
> git init
Затем я создаю пустой репозиторий из этого репо.
> cd .. && git clone --bare stackOF stackOF.git
Теперь я хочу создать два клона этого голого репо и смоделировать некоторые действия слишком коллег.
> git clone stackOF.git stackOF.clone1
> git clone stackOF.git stackOF.clone2
Первый, clone1
создаст файл, зафиксирует и отправит изменения.
> cd stackOF.clone1 && touch file_clone1
> git add . && git commit -m "File from clone 1."
> git push
Во-вторых, clone2
создаст файл и только зафиксирует.
> cd ../stackOF.clone2 && touch file_clone2
> git add . && git commit -m "File from clone 2."
В этот момент начинаются мои сомнения по поводу ls-tree
концепция. При выполнении следующей команды я ожидаю увидеть файл, выдвинутый clone1, но я получаю следующее:
> git ls-tree origin
100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5392 file1
100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5392 file2
Я хочу получить результат, подобный выполнению команды ls-tree в каталоге с пустым хранилищем:
> cd ../stackOF.git
> git ls-tree master
100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5392 file1
100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5392 file2
100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5392 file_clone1
Изучая этот случай, я нашел команду, которая показывает мне, что я хочу, но с множеством других сведений. Итак, возвращаясь к clone2
и выполнение команды:
> cd ../stackOF.clone2
> git archive -v --remote=file:///f/gits/stackOF.git master
pax_global_header00006660000000000000000000000064133246307500014515gustar00rootroot0000000000000052 comment=0085439d6a07481e6a21db545edd3f7960c038e2
file1000066400000000000000000000000001332463075000117720ustar00rootroot00000000000000file2000066400000000000000000000000001332463075000117730ustar00rootroot00000000000000file_clone1000066400000000000000000000000001332463075000131520ustar00rootroot00000000000000remote: file1
remote: file2
remote: file_clone1
Подводя итог, я нахожусь на clone2
хранилище и поиск, какие файлы находятся на голом хранилище, не тяните. Но я хочу что-то очень чистое, как использование ls_tree
на голом хранилище.