Как создать bash-скрипт для клонирования репозиториев с помощью git checkout? - PullRequest
0 голосов
/ 01 апреля 2019

Я хочу создать bash-скрипт для клонирования репозиториев и использования git checkout.Я использую Windows.

#!/bin/bash

PATH="C:\Users\Projects"
echo "$PATH"

git clone https://mygitrepository.com $PATH
cd "$PATH\mygitrepository"
git checkout Development 

cd ..
git clone https://mygitrepository2.com $PATH
cd "$PATH\mygitrepository2"
git checkout Development 

Я хочу, чтобы все репозитории были клонированы с помощью ветки 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

Ответы [ 2 ]

3 голосов
/ 01 апреля 2019

Возможно, вы захотите изменить имя переменной, которую вы используете. $PATH - это переменная среды, которая используется для определения того, какие каталоги ищутся при поиске конкретной программы или исполняемого файла.

https://en.wikipedia.org/wiki/PATH_(variable)

Похоже, что установка PATH в верхней части не позволяет bash найти двоичный файл git. Попробуйте вместо этого.

#!/bin/bash

MY_PATH="C:\Users\Projects"
echo "$MY_PATH"

cd "$MY_PATH"
git clone https://mygitrepository.com
cd "$MY_PATH\mygitrepository"
git checkout Development

cd "$MY_PATH"
git clone https://mygitrepository2.com
cd "$MY_PATH\mygitrepository2"
git checkout Development
1 голос
/ 01 апреля 2019

Как упомянул @tkausl, создав переменную с именем $PATH в плохом виде, она перезаписала существующую, что делает исполняемый файл git неразборчивым.Переименуйте переменную, и она должна работать:

> cat /tmp/t.sh 
#!/bin/bash

PATH="C:\Users\Projects"
echo "$PATH"

git status

ghislain@linux (1): ~/home_conf (master *=) ✔
> /tmp/t.sh 
C:\Users\Projects
/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:\Users\Projects"
echo "$PROJECTS_PATH"

git status

ghislain@linux (1): ~/home_conf (master *=) ✔
> /tmp/t.sh 
C:\Users\Projects
On branch master
Your branch is up to date with 'origin/master'.
...