Фатальная ошибка: недопустимый источник имени объекта в rasp pi

#bash #git

#bash #git

Вопрос:

Я пытаюсь создать скрипт, который будет автоматически заполняться из репозитория git каждый час, если будут изменения. Он запущен на raspberry pi.

     #!/bin/bash
    VAR=$(git merge-base origin master)
    VAR2=$(git rev-parse origin)

    if [ "$VAR" == $VAR2 ]; 
    then
        echo "hi"
        git pull
    else
        echo "no"
    fi
  

Это мой код. Он возвращает эти ошибки

фатальное: недопустимое имя объекта origin фатальный: неоднозначный аргумент ‘origin’: неизвестная редакция или путь, которого нет в рабочем дереве. Используйте ‘—‘, чтобы отделить пути от ревизий, вот так:

 git <command> [<revision>...] -- [<file>...]
  

Однако две команды, приведенные выше, из-за которых возникают ошибки, отлично выполняются на моем компьютере с Windows. В чем здесь проблема?

Решение Я обнаружил, что в моей ветке git -a у меня не было головной ветки, поэтому я создал ее с помощью git symbolic-ref refs/ remotes/origin/HEAD refs / remotes /origin /master

Ответ №1:

Я не совсем уверен в вашей настройке… Но, вероятно, источник является удаленным, а не филиалом…. И если это так, то из-за этого произойдет сбой как merge-base, так и rev-parse. Для работы Merge-base требуется как минимум 2 ветви или ревизии… для rev-parse требуется одна ветвь. Если вы попытаетесь использовать удаленный в качестве одного из аргументов, следует ожидать одного взрыва.

Комментарии:

1. origin будет проанализирован как refs/remotes/origin/HEAD на шаге 6 протокола преобразования имени в хэш-идентификатор (см. gitrevisions), при refs/remotes/origin/HEAD условии, что он существует. Хотя, вероятно, здесь имеет больше смысла использовать origin/master master .