#windows #bash #git #git-bash
#Windows #bash #git #git-bash
Вопрос:
Я хочу создать скрипт bash для клонирования репозиториев и использовать git checkout. Я использую Windows.
#!/bin/bash
PATH="C:UsersProjects"
echo "$PATH"
git clone https://mygitrepository.com $PATH
cd "$PATHmygitrepository"
git checkout Development
cd ..
git clone https://mygitrepository2.com $PATH
cd "$PATHmygitrepository2"
git checkout Development
Я хочу, чтобы все репозитории были клонированы с использованием разработки ветки. Но у меня следующая ошибка:
> $ ./Clone_Repositories.sh C:Users\Projects ./Clone_Repositories.sh:
> line 5: git: command not found ./Clone_Repositories.sh: line 7: cd:
> mygitrepository: No such file or directory ./Clone_Repositories.sh:
> line 9: git: command not found ./Clone_Repositories.sh: line 13: git:
> command not found ./Clone_Repositories.sh: line 15: git: command not
> found
Комментарии:
1.
PATH
это плохой выбор для имени переменной… Выберите что-нибудь другое.2.
PATH
это переменная, которая определяет местоположение ваших двоичных файлов. Он должен содержать местоположение git и других приложений.
Ответ №1:
Возможно, вы захотите изменить имя переменной, которое вы используете. $PATH
это переменная среды и us, используемая для определения того, в каких каталогах выполняется поиск при поиске конкретной программы или исполняемого файла.
https://en.wikipedia.org/wiki/PATH_ (переменная)
Похоже, что установка PATH вверху не позволяет bash находить git
двоичный файл. Попробуйте это вместо этого.
#!/bin/bash
MY_PATH="C:UsersProjects"
echo "$MY_PATH"
cd "$MY_PATH"
git clone https://mygitrepository.com
cd "$MY_PATHmygitrepository"
git checkout Development
cd "$MY_PATH"
git clone https://mygitrepository2.com
cd "$MY_PATHmygitrepository2"
git checkout Development
Ответ №2:
Как упоминал @tkausl, создавая переменную с именем $PATH
в bad, он перезаписал существующую, сделав git
исполняемый файл недоступным для поиска. Переименуйте переменную, и она должна работать:
> cat /tmp/t.sh
#!/bin/bash
PATH="C:UsersProjects"
echo "$PATH"
git status
ghislain@linux (1): ~/home_conf (master *=) ✔
> /tmp/t.sh
C:UsersProjects
/tmp/t.sh: line 6: git: command not found
И здесь с другой переменной:
ghislain@linux (1): ~/home_conf (master *=) ✖ (148)
> cat /tmp/t.sh
#!/bin/bash
PROJECTS_PATH="C:UsersProjects"
echo "$PROJECTS_PATH"
git status
ghislain@linux (1): ~/home_conf (master *=) ✔
> /tmp/t.sh
C:UsersProjects
On branch master
Your branch is up to date with 'origin/master'.