Git pull игнорировать файлы изображений

Я являюсь участником репозитория, в котором иногда публикуются изображения. Изображения действительно не важны, но другие участники будут продолжать add и push их в репозиторий. Я хотел бы выступить pull операции, игнорирующие суффиксы файлов изображений, такие как *.png. Каталог git просто занимает слишком много места, и мне действительно не нужно вытаскивать эти файлы изображений.

как я могу не pull файлы изображений, но вам все другое?

1 ответов


можно использовать sparse-checkout в sparsly заполнить ваш рабочий каталог. sparse-checkout использует skip-worktree бит, который заставляет git предположить, что файл в вашем рабочем дереве обновлен независимо от того, что.


для следующего я предположу, что вы в настоящее время находитесь в корне своего репозитория и имеете чистое рабочее дерево (git stash например).

сначала вы должны включить sparse-checkout используя git config core.sparsecheckout true; после этого вы можете определить все шаблоны, которые вы хотите "игнорировать" при оформлении заказа в .git/info/sparse-checkout.
Синтаксис такой же, как и в разница в том, что вы определяете все файлы извлечь не те, которые вы хотите игнорировать.

предположим, вы хотите избежать проверки всех png файлы в репозитории, то ваш sparse-checkout файл может выглядеть так:

*         # Include everything
!*.png    # Flag png files with the 'skip-worktree' bit

если вы хотите применить sparse-checkout к вашему текущему рабочему каталогу вы должны выполнить read-tree команда после этого.

git read-tree -m -u HEAD

после этого вы можете продолжить работу с репозиторием как обычно, без "игнорировать" файлов в рабочем дереве.


TL; DR:

  • активировать sparse-checkout: git config core.sparsecheckout true
  • определение под .git/info/ содержащий шаблоны файлов, которые вы хотите включить
  • обновите рабочее дерево git read-tree -m -u HEAD

вы можете прочитать больше о sparse-checkout в официальной документации git read-tree.