Я использую github с относительно короткого периода, и я всегда использовал клиента для выполнения коммитов и извлечений. Вчера я решил попробовать его из git bash, и я успешно создал новый репозиторий и зафиксировал файлы.
Сегодня я внес изменения в репозиторий с другого компьютера, я зафиксировал изменения, и теперь я вернулся домой и выполнил команду git pull
обновления моей локальной версии, и я получил это:
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream develop origin/<branch>
единственный участник этого репо - это я, и нет никаких веток (только мастер). Я на Windows, и я выполнил тягу из Git Bash:
git status:
$ git status
# On branch master
nothing to commit, working directory clean
гит ветка:
$ git branch
* master
Что я делаю неправильно?
git remote -v
? Что это говорит?git pull
.git pull --set-upstream-to=origin/master master
возможно. Смотрите мой ответ нижеОтветы:
Вы можете указать, какую ветку вы хотите вытянуть:
Или вы можете настроить его так, чтобы ваша локальная главная ветка отслеживала главную ветку github как восходящую:
Это отслеживание веток настраивается для вас автоматически при клонировании хранилища (только для ветки по умолчанию), но если вы добавляете удаленное устройство в существующее хранилище, вы должны настроить отслеживание самостоятельно. К счастью, совет, данный git, позволяет легко запомнить, как это сделать.
источник
git branch -u origin/master
, если вы уже проверили мастер. Если нет,git branch -u origin/master master
будет работать.--set-upstream-to=
синтаксис. (что является заменой--set-upstream
)fetch
, будет утерян. Отсюда необходимость настроить его снова. :)Смотрите: тег git checkout, сбой git pull в ветке
Если, как и я, вам нужно делать это все время, вы можете настроить псевдоним, чтобы делать это автоматически, добавив следующее в ваш
.gitconfig
файл:Когда вы увидите сообщение
There is no tracking information...
, запустите:Благодаря https://zarino.co.uk/post/git-set-upstream/
источник
.gitconfig
в одной строке (может быть изменен для локальных или других конфигов соответственно):git config --global alias.set-upstream '!git branch --set-upstream-to=origin/$(git symbolic-ref --short HEAD)'
Ответ ComputerDruid великолепен, но я не думаю, что необходимо устанавливать upstream вручную, если вы не хотите. Я добавляю этот ответ, потому что люди могут подумать, что это необходимый шаг.
Эта ошибка исчезнет, если вы укажете пульт, который вы хотите вытащить, как показано ниже:
Обратите внимание, что
origin
это имя удаленного иmaster
это имя ветви.1) Как проверить имя пульта
2) Как посмотреть, какие ветки доступны в репозитории.
источник
Я часто сталкиваюсь с этим точным сообщением, потому что я создаю локальные филиалы
git checkout -b <feature-branch-name>
без предварительного создания удаленной ветви.После того, как вся работа была завершена и зафиксирована локально, было исправлено,
git push -u
что создало удаленную ветку, подтолкнуло всю мою работу, а затем URL-адрес запроса на слияние.источник
git push -u origin <my-feature-branch-name>
, чтобы создать удаленную ветку и запустить свою работуЯ пробовал приведенные выше примеры и не смог заставить их синхронизироваться с веткой (не главной), которую я создал на другом компьютере. Для фона я создал этот репозиторий на компьютере A (git v 1.8), а затем клонировал репозиторий на компьютер B (git 2.14). Я внес все свои изменения в комп B, но когда я попытался перенести изменения на компьютер, AI не смог этого сделать, получив ту же ошибку выше. Подобно приведенным выше решениям, мне пришлось сделать:
немного отличается, но, надеюсь, помогает кому-то
источник
пытаться
надеюсь, что этот ответ помогает первоначально ответил здесь https://stackoverflow.com/a/55015370/8253662
источник
С Git 2.24 вам не придется делать
Вы сможете сделать:
См. Больше в разделе « опция удаленного и ветвления по умолчанию
-u
- работает,push
но не работаетpull
».источник
1) ветка git --set-upstream-to = origin /
<master_branch>
feature /<your_current_branch>
2) мерзавец
источник
$ git branch --set-upstream-to=heroku/master master
а такжеработал на меня!
источник
То же самое случилось со мной раньше, когда я создал новую ветку git, не выдвигая ее в начало.
Попробуйте сначала выполнить эти две строки:
Затем:
Это должно быть хорошо сейчас!
источник
Это происходит из-за того, что текущая ветвь не имеет отслеживания на удаленной ветке. так что вы можете сделать это двумя способами.
источник
git branch --set-upstream-to = origin / main
источник