Могу ли я запустить команду из определенной директории, не переходя в нее?

или же

Могу ли я выполнить команду git (push) из-за пределов хранилища, указав его путь каким-либо образом?


Я хотел бы сделать что-то вроде этого:

function backup
    set BKDIR /flash/drive
    rsync -av $HOME/important/ $BKDIR/important/
    cd $HOME/git_repo
    git push flash master
end

Но я не хочу переходить в другой каталог. Было бы здорово, если бы я мог синхронизировать репозиторий git, как при использовании rsync: указав исходный каталог, но не меняя рабочий каталог.

Я полагаю, что последним средством было бы записать текущий каталог в начале и вернуться к нему в конце.

2 ответа2

1

git --git-dir /foo/bar/ rest-of-git-command

ссылка:

--git-dir=<path> Установить путь к хранилищу. Это также можно контролировать, устанавливая переменную среды GIT_DIR. Это может быть абсолютный или относительный путь к текущему рабочему каталогу.

1

@RaGe имеет правильный ответ.

Ответ для конкретной рыбы - использовать pushd, а затем popd

function backup
    # ...
    pushd $HOME/git_repo
    git push flash master
    popd
end

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .