[newbies] git pull into subdirectory

Alexander Lubyagin lubyagin на yandex.ru
Вт Ноя 11 21:36:19 MSK 2025


Добрый день.

Возник такой вопрос.

Во многих репозиториях Альта принят принцип - хранить исходники в 
подкаталоге %name/%name/

Как оформить первый коммит, чтобы из удалённого репозитория свежие 
коммиты подтягивались сразу в подкаталог по git fetch?

Вручную, у меня получилось так, для пакета mdless (markdown viewer in Ruby):

  cd mdless
  git init -b master .
  git remote add upstream https://github.com/ttscoff/mdless
  git remote -v
  git fetch upstream
  git merge -s ours --no-commit upstream/develop
  git read-tree --prefix=mdless -u upstream/develop
  git commit -m "Subtree merged in mdless/"
  git remote add local /opt/gk/man/mdless
  git remote -v
  git push --set-upstream local master
  ls -l mdless/
  git ls-files | less

--

Однако, таким способом получается дублирующийся список файлов: в ./ и в 
./mdless/

Я искал другие способы. Из найденных:
[1] Использование git subtree
[2] Использование git sparse checkout
[3] Использование git worktree
[4] Использование submodule
[5] Переименование файлов + filter-branch: 
https://stackoverflow.com/a/4042965

Какой из вариантов наиболее правильный?
Я пробовал смотреть в имеющихся пакетах, но, бывает, changelog длиннее, 
чем git log.

Или, всё же, правильный вариант - с gear-uupdate? 
https://www.altlinux.org/Gear/gear-uupdate

--



Подробная информация о списке рассылки devel-newbies