Git: открыть Git-Bash в указанном каталоге

Git: открыть Git-Bash в указанном каталоге

Я могу запустить git-bash через командную строку Windows несколькими способами:

"C:\Program Files\Git\bin\sh.exe"
"C:\Program Files\Git\git-bash.exe"
"C:\Program Files\Git\usr\bin\mintty.exe"

Я хотел бы запустить git-bash в определенном каталоге, используя такой вызов.


Для контекста, я делаю это из SAS Enhanced Editor. Фактический вызов

%sysexec(start "" "C:\Program Files\Git\bin\sh.exe" && exit);

Для тех, кто не знаком с SAS, %sysexecоткрывает экземпляр командной строки Windows и выдает любую команду, заданную в качестве аргумента. Работает на удивление хорошо. Однако я хотел бы иметь возможность запускать git-bash в определенном каталоге, а не только в домашнем.

Для этого я могу создать запись в .bashrc:

cd /c/new/starting/dir

Однако проблема в том, что всякий раз, когда я открываю git-bash, например, через контекстное меню в определенной папке, каталогом по умолчанию становится .bashrc.

я вижу этосуществуют параметры запуска git-bashкак --cd-to-homeили --cd=<path>но я не могу заставить их работать. Например,

"C:\Program Files\Git\bin\sh.exe" --cd-to-home
"C:\Program Files\Git\bin\sh.exe --cd-to-home"
"C:\Program Files\Git\git-bash.exe" --cd-to-home
"C:\Program Files\Git\git-bash.exe --cd-to-home"
etc.

Можно ли запустить git-bash в определенном каталоге из командной строки Windows? Если да, то каков правильный синтаксис?

БОНУС: Бонусные баллы за описание в 50 символов или меньше

решение1

"C:\Program Files\Git\git-bash.exe" --cd=c:\path\to\folder

решение2

Одним из возможных решений является смена каталога перед открытием git-bash. По умолчанию git-bash открывается в любом текущем каталоге. Для этого поместите вызов cdперед start,

cd C:\specific\dir\to\open && start "" "C:\Program Files\Git\bin\sh.exe"

Поскольку это делается в SAS, конкретный каталог может быть сохранен в макропеременной. Это гарантирует требование быть в пределах 50 символов (и, следовательно, вызываться горячей клавишей в меню KEYS). Где-то в вашем коде вы можете назначить рабочий каталог Git,

%let gwd = C:\specific\dir\to\open;

Тогда вызов %sysexecвыглядит так:

%sysexec(cd &gwd. && start "" "C:\Program Files\Git\bin\sh.exe" && exit);

Это работает следующим образом. Сначала SAS расширяет &gwd. Затем он открывает командную строку Windows. cdИзменяет каталоги на те, &gwd.в которые разрешен. Затем Git-bash открывается в текущем каталоге (который был изменен на &gwd.). Наконец, всякий раз, когда git-bash закрывается, exitдается команда, закрывающая сеанс командной строки Windows.

К сожалению, кажется, что начальный вариант cdвводит достаточно задержки между вызовом и открытием git-bash, чтобы раздражать. Я подозреваю, что запуск cdкоманды в git-bash может быть быстрее, но этот подход работает.

решение3

Вы можете создать такой скрипт:

cd c:\path\to\particular\directory
"C:\Program Files\Git\bin\sh.exe" 

Сохраните его как whatever.cmdили whatever.batи дважды щелкните по нему.

Для удобства вы можете добавить свой скрипт на панель задач, выполнив следующие шаги. Я подумал, что стоит включить это, поскольку это не так просто, как вы могли бы ожидать (нельзя просто перетащить сам скрипт на панель задач):

  1. Щелкните правой кнопкой мыши по скрипту и выберите «Создать ярлык».
  2. щелкните правой кнопкой мыши по созданному вами ярлыку и выберите «Свойства».
  3. В разделе «Ярлык», «Цель» введите:cmd /c C:\path\to\your\script\whatever.cmd
  4. Примечание: возможно, вам придется указать полный путь кcmd(например, C:\Windows\System32\cmd.exe...)

Теперь просто нажмите команду на панели задач, чтобы запустить скрипт одним щелчком мыши.

Связанный контент