Як запустити вікно Git Bash із певним робочим каталогом за допомогою сценарію?


86

Як я можу запустити нове вікно Git Bash із зазначеним робочим каталогом за допомогою сценарію (або Bash, або пакет Windows)?

Моя мета - запустити кілька вікон Git Bash з одного сценарію, кожен з яких встановлений в інший робочий каталог. Таким чином, я можу швидко приступити до роботи після завантаження комп'ютера, замість того, щоб відкривати вікна Git Bash і переходити до кожного з них у правильний робочий каталог.

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


1
@StevenVascellaro Відредаговане запитання, щоб пояснити, чому це не обман.
holocronweaver

Що має сенс. Я скасував свій дублікат голосування.
Стевойсяк,

Відповіді:


62

Інший варіант - створити ярлик із такими властивостями:

введіть тут опис зображення

Ціль повинна бути:

"% SYSTEMDRIVE% \ Програмні файли (x86) \ Git \ bin \ sh.exe" --login

Почати з - це папка, до якої ви бажаєте запускати запит Git Bash.


1
Слава! Ніколи не знав, що Start inмає щось
спільне

Це найпростіший метод. Згодом я закріпив цей ярлик на панелі завдань, а потім Windows + 1, я зберігаю це як перший елемент панелі завдань, відкриває репо з git-bash безпосередньо.
Харін Лакс,

48

Git Bash використовує cmd.exeдля свого терміналу плюс розширення з MSYS / MinGW, які надаються sh.exe, своєрідною cmd.exeобгорткою. У Windows ви запускаєте новий термінал за допомогою startкоманди.

Отже, сценарій оболонки, який запускає новий термінал Git Bash із певним робочим каталогом:

(cd C:/path/to/dir1 && start sh --login) &
(cd D:/path/to/dir2 && start sh --login) &

Еквівалентний пакетний сценарій Windows:

C:
cd \path\to\dir1
start "" "%SYSTEMDRIVE%\Program Files (x86)\Git\bin\sh.exe" --login 
D:
cd \path\to\dir2
start "" "%SYSTEMDRIVE%\Program Files (x86)\Git\bin\sh.exe" --login 

Щоб отримати той самий розмір шрифту та вікна, що й Git Bash, запущений із меню «Пуск», найпростіше скопіювати налаштування ярлика меню «Пуск» у налаштування консолі за замовчуванням (щоб змінити значення за замовчуванням, відкрийте cmd.exe, клацніть лівою кнопкою миші верхній лівий значок та виберіть За замовчуванням).


1
Це працює для мене: cdдо каталогу, в якому я хочу, щоб запустився Git Bash, а потім запуск startкоманди у вашому прикладі дійсно дасть мені термінал Git Bash у цій директорії. Ви впевнені, що не робите cd $HOME(або cdбез аргументів) десь у своїх файлах bash rc? (Як .bashrc, .profile...). Також пам’ятайте про букву диска. Якщо ви хочете почати Git Bash на X:диску, а потім робити cd x:\pathне скорочуватиме це, ви повинні зробити , x:а потім , cd \pathперш ніжstart
Янош

1
Ти правий! Мені не вистачало того факту, що ти не можеш просто cd x:\path. Буде редагувати моє рішення відповідно.
holocronweaver

Ідеальне рішення! Дозволю лише додати, що cmd.exeналаштування за замовчуванням не збігаються із типовими налаштуваннями Git Bash при встановленні Git Bash! І ви повинні розуміти різницю між налаштуваннями за замовчуванням ( Defaultsіз контекстного меню) та поточними ( Properties). Отже, я зробив: (1) відкрити Git Bash, вибрати Properties(поточні налаштування), (2) налаштувати його, щоб точно, що я хочу (шрифт, розмір вікна + позиція), (3) відкрити cmd.exe, вибрати Defaults, (4 ) налаштування копіювання та вставлення з Git Bash в cmd.exe. Потім OKв cmd.exeналаштуваннях, Cancelв Git Bashналаштуваннях і вуаля!
трейдер

48

Спробуйте параметр --cd =. Якщо припустити, що ваш GIT Bash знаходиться в C: \ Program Files \ Git, це буде:

"C:\Program Files\Git\git-bash.exe" --cd="e:\SomeFolder"

Якщо використовується всередині ключа реєстру, параметр папки може надаватися з% 1:

"C:\Program Files\Git\git-bash.exe" --cd="%1"


Як я можу використовувати %1параметр реєстру?
Еразм Седернес,

1
поточна відповідь настільки застаріла, ця повинна бути однією!
Küzdi Máté

Це здається ментом для командного файлу. (.bat)
Франта

26

Нехай ще додамо відповідь від @Drew Noakes:

Ціль:

"C:\Program Files\Git\git-bash.exe" --cd=C:\GitRepo

Параметр cdповинен бути одним із варіантів, як вказати робочий каталог.

Також зауважте, що я не маю жодних --loginпараметрів: Натомість я використовую іншу додаткову програму, призначену лише для ключів SSH: Pageant (агент автентифікації PuTTY) .

Почати в:

C:\GitRepo

Той самий можливий спосіб, як @Drew Noakes згадав / показав тут раніше, і я його використовую.

Клавіша швидкого доступу:

Ctrl + Alt + B

Такі ярлики - ще одна менш відома функція Windows. Але є обмеження: щоб ярлик набув чинності, його потрібно розмістити десь у підкаталозі Користувача: Робочий стіл у порядку.

Якщо ви не хочете, щоб він був видимим, але все ще активним, розмістіть цей .lnkфайл, тобто у папці швидкого запуску, оскільки цей каталог призначений для таких ярликів. (незалежно від того, відображається на робочому столі) # 76080 # 3619355

"\Application Data\Microsoft\Internet Explorer\Quick Launch\"

12

Крім того, Win10 дає вам можливість відкрити git bash з робочого каталогу, клацнувши правою кнопкою миші на вашій папці та вибравши тут GitBash.

введіть тут опис зображення


4

Windows 10

В основному це відповідь @ lengxuehx, але оновлена ​​для Win 10, і передбачається, що ваша установка bash здійснюється з Git Bash для Windows із офіційних завантажень git .

cmd /c (start /b "%cd%" "C:\Program Files\GitW\git-bash.exe") && exit

Я використав це після того, як втратив пункти контекстного меню для Git Bash як команду для запуску з налаштувань реєстру. Якщо вам це цікаво, я зробив наступне:

  1. Створіть новий ключ, що викликається Bashв shellключі наHKEY_CLASSES_ROOT\Directory\Background\shell
  2. Додайте значення рядка до Icon(не нового ключа!), Який є повним шляхом до вашого git-bash.exe, включаючи частину git-bash.exe. Можливо, вам доведеться обернути це в лапки.
  3. Відредагуйте значення за замовчуванням Bashдо тексту, який потрібно використовувати в контекстному меню введіть тут опис зображення
  4. Додайте підключ до Bashвикликаногоcommand
  5. Змінити commandзначення за замовчуванням доcmd /c (start /b "%cd%" "C:\Program Files\GitW\git-bash.exe") && exit введіть тут опис зображення

Тоді ви зможете закрити реєстр і почати використовувати Git Bash з будь-якого місця, яке є справжнім каталогом. Наприклад, This PCце не справжній каталог.

введіть тут опис зображення


3
Для запису, типовим записом git bash всередині реєстру HKEY_CLASSES_ROOT\Directory\Background\shell\git_shell\commandє"C:\Program Files\Git\git-bash.exe" "--cd=%v."
Ferrybig

Приємно! Дякую, @Ferrybig! ^ _ ^
kayleeFrye_onDeck

4

Це команда, яка може бути виконана безпосередньо Run dialog box(ярлик win+ R), а також працює добре збережена як .batскрипт:

cmd /c (start /d "/path/to/dir" bash --login) && exit

1
він запускає новий cmd у Windows 10
kyb

1
@kyb це має бути /bдля Win 10
kayleeFrye_onDeck

@kyb я зробив відповідь , який є модифікацією відповіді lengxuehx в, якщо ви або хто -то ще по - , як і раніше зацікавлені: stackoverflow.com/a/39779451/3543437
kayleeFrye_onDeck

3

Я не знайомий з Git Bash, але припускаючи, що це оболонка git (така як git-sh), яка знаходиться /path/to/my/gitshellі ваша улюблена програма терміналу називається `` myterm '', ви можете створити наступне:

(cd dir1; myterm -e /path/to/my/gitshell) &
(cd dir2; myterm -e /path/to/my/gitshell) &
...

Зверніть увагу, що параметр -eдля виконання може бути по-різному названий улюбленою програмою терміналу.


Дякую, ваша відповідь змусила мене думати у правильному напрямку! Ось як я роблю речі в Linux, але я не міг зрозуміти еквівалент у MS Windows ... дотепер! Для Git Bash myterm- cmd.exe з доповненнями через MSYS / MinGW. Щоб запустити новий cmd, ви використовуєте специфічну для Windows startкоманду, за якою слідує шлях до Git Bash, sh.exeа потім будь-які параметри командного рядка, які вам подобаються. Моя відповідь дає подробиці.
holocronweaver

-1

Я міг би дати неправильний напрямок, але мені подобається цей фокус.

За допомогою Провідника Windows, вказуючи на будь-який потрібний каталог, введіть "cmd" в адресному рядку, який відкриє командний рядок Windows у цьому каталозі.

Якщо у вас на шляху є каталог "Git", таким же чином ви можете ввести "git-bash" в адресному рядку, і в цьому каталозі відкриється Git Shell.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.