Указание того, какой git-репо использовать

У меня есть сценарий bash, называемый cgit, который действует как git для одного конкретного git- репо (находится в /.git ):

 #!/bin/bash cd /; sudo git $@ > /dev/stdout 

Я использую его для отслеживания важных системных файлов:

 cgit add /etc/rc.conf 

Проблема в том, что я пытаюсь добавить контент по отношению к каталогу, в котором я работаю, например:

 cd /home/user cgit add .ssh/config 

cgit попытается добавить /.ssh/config в /.git repo.

Любые предложения или обходы?

  • Git совершает внутри Makefile
  • Zsh git filename завершено с помощью «--git-dir = ... --work-tree = ...»: не репозиторий git
  • git checkout конкретные файлы
  • Как я могу отправить исполняемый файл?
  • Использование псевдонима zsh для быстрого клонирования репозитория git с именем пользовательской папки
  • git не использует глобальный файл конфигурации или открытый ключ
  • С какой целью perl * будет исключен в yum.conf?
  • Получение патчей из списка рассылки с mutt и vim
  • 2 Solutions collect form web for “Указание того, какой git-репо использовать”

    Я бы обновил скрипт cgit для использования --git-dir . С man-страниц:

      --git-dir=<path> Set the path to the repository. This can also be controlled by setting the GIT_DIR environment variable. It can be an absolute path or relative path to current working directory. 

    Таким образом, это станет следующим:

     #!/bin/bash sudo git --git-dir=/.git $@ > /dev/stdout 

    FTR, я не пробовал.

    Гораздо лучше использовать etckeeper вместо собственного домашнего решения. Есть количество исправлений, которые адресчик использует. Это пакет в нескольких дистрибутивах Linux, а также легко создавать из исходного кода.

    Очень приятной особенностью в системах на базе Debian является то, что он связан с возможностью автоматического фиксации до и после установки или обновления пакетов. Это помогает отличить изменения, которые вы сделали от тех, которые были сделаны обновлениями пакетов. Он также (необязательно) делает ежедневную автосогласование.

    Linux и Unix - лучшая ОС в мире.