Git ветки: отслеживание вверх по течению

Я не знаю, использую ли я Git или у меня проблемы с конфигурацией, поэтому любая ясность будет оценена:)

Я клонирую свои репозитории github на машины A и B, затем на машине A I делаю:

git checkout -b branchA
// make edits
git add .
git commit -am "initial"
git push

затем на машине B я делаю

git pull
git checkout branchA
// make edits
git commit -am "edits"
git push

на машине A я тогда делаю:

git pull

однако это говорит:

There is no tracking information for the current branch

поэтому я должен сделать:

git branch --set-upstream branchA origin/branchA

: / Почему я должен установить восходящий поток, когда он изначально подтолкнул его к origin/branchA без проблем?

В чем дело? Спасибо

Я использую мсыгит 1.8. на окнах

PS когда я делаю pull на машине B, почему нет новой ветки branchA отслеживается по умолчанию? git branch не показывает это (но это делает с -r). Могу ли я сделать так, чтобы все новые удаленные ветви отслеживались по умолчанию, когда я pull?

1 ответ

Решение

Поскольку git config push.default ничего не возвращает, это означает, что с "git 1.8.0.msysgit.0" ваш git push средства git push origin :с refspec ':'означает "совпадающая" ветвь.

Здесь это создает соответствие branchA на удаленной стороне.

Но это не делает его удаленной ветвью отслеживания.
Другими словами, branch.branchA.merge не установлен ни к чему.
Вот почему git pull не работает: он не знает, какую удаленную ветку он должен объединить с локальной branchA,


Обратите внимание, ваш первый git push должен был отобразить следующее сообщение:

warning: push.default is unset; its implicit value is changing in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the current behavior after the default changes, use:

  git config --global push.default matching

To squelch this message and adopt the new behavior now, use:

  git config --global push.default simple

See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)

Итак, с Git2.0, этот git push не удастся.
Единственный способ подтолкнуть branchA будет путем явной установки его восходящей ветви (с тем же именем):

git push -u origin branchA
Другие вопросы по тегам