it-roy-ru.com

Вверх по течению пропало сообщение о переключении обратно на пустую ветку master?

Моя git-версия Git-1.9.4-preview20140611 Ранее я клонировал пустой репозиторий git Origin. Репозиторий клонирован, но со следующим сообщением

warning: Вы, кажется, клонировали пустой репозиторий . Проверка подключения ... сделано.

Затем скопировал файл .gitIgnore, который находился в главном репозитории Git другого проекта, и передал его локальному мастеру. Этот файл использовался нами много раз прежде. Это нормально ... У нас есть стандартизированный файл .gitIgnore для всех наших проектов. Это было создано как часть лучших практик.

Затем создал новую ветку и скопировал некоторый код в физическое место, где находится локальное git-репо

git checkout -b FromCC

Добавил код и зафиксировал в этой ветке.

git add --all
git commit -M "Blah"

Все эти операции успешны.

Моя цель - в конечном итоге объединить эти изменения в локальную главную ветку.

Я следующий делаю

git checkout master

и получите следующее сообщение.

Ваша ветка основана на 'Origin/master', но восходящий поток исчез. (используйте "git branch --unset-upstream" для исправления)

Что означает это сообщение? Почему вверх по течению «уходи»?

Интересное наблюдение: Сегодня я повторил тот же процесс с тем же основным Git-репозиторием. На этот раз хранилище Git не было пустым. У него был файл .gitIgnore перед этим. На этот раз упомянутое сообщение не появилось.

11
DolphinJava

Отсутствует не исходный репозиторий (сам Origin), а конкретная ветка, которую вы клонировали (master в Origin), которая отсутствует.

Более того, сообщение git вводит в заблуждение: ветвь master на Origin не исчезла ушла , она была никогда там . Когда вы клонировали пустой репозиторий, в нем вообще не было ветвей. Он продолжал не иметь ветвей. Следовательно, ваш локальный master, который был настроен для отслеживания Origin/master, отслеживал (является) отслеживание ветви, которая (не) существует.

Сообщение предназначено больше для такой ситуации:

$ git clone ...
$ git checkout featureX   # track some feature branch
[go away for a week, come back]
$ git fetch -p            # update remote branches

где в течение той недели, когда вы отсутствовали, ветвь featureX была удалена (предположительно объединена в линию разработки и больше не нужна). На этом этапе вы находитесь в локальной ветви featureX, настроенной на отслеживание удаленной ветви Origin/featureX, но Origin/featureX больше не существует.

В этом случае, однако, у вас есть локальная ветвь master, отслеживающая Origin/master, когда нет Origin/master еще . Как только вы создадите его (с помощью Push, который делает хранилище непустым), проблема исчезнет. Это произошло только потому, что по умолчанию вы начинаете с master, даже если пульт дистанционного управления пуст и фактически еще не имеет master.

34
torek

Как новичок в git/github, я столкнулся с этим после создания полностью пустого репо на github и git cloned для local. В том числе предупреждение о пустом репо. Затем коммит для вновь созданного локального файла дал сообщение о том, что «апстрим ушел».

Далее предполагается, что кто-то хочет использовать удаленное хранилище, поэтому необходимо установить восходящий поток:

Я подумал добавить, что github предложил при создании пустого репо несколько команд. Важнейшим из них будут команды git Push -u Origin master (после команд init, add (для файла), commit и remote add Origin <url>). Это переносит локально существующего мастера в удаленное хранилище github.

Переключатель -u для Push действительно устанавливает upstream (длинная версия --set-upstream) для набора на github .... Я должен признать, что остальная часть man-страницы git-Push для этого переключателя остается мистической для меня. .. Так как местный не обновлен, ни успешно выдвинут. 

Сообщение пропало, так как главная ветка теперь также доступна на удаленном репо.

3
R. Maurer

У меня было то же сообщение об ошибке с GitHub. Фактическая проблема заключалась в том, что я не одобрил приглашение в хранилище. Так что мерзавец подумал, что у меня нет прав на репо.

0
Kaspars Rinkevics