Путаница с Git Fetch/Pull

Я новичок в git и в настоящее время пробую различные комбинации, чтобы понять git.

У меня есть репозиторий с веткой под названием «dev». Сначала я синхронизировал свой локальный компьютер с удаленным. Затем я поменял пульт прямо с Github.

Теперь, если я использую

git fetch origin dev:dev

то я получаю сообщение об ошибке

fatal: Refusing to fetch into current branch refs/heads/dev of non-bare repository

Однако следующая команда pull работает нормально

git pull origin dev

В одном из ответов Stackoverflow упоминалось, что выборка с последующим слиянием эквивалентна git pull.

Если это так, то почему такое несоответствие?

Ссылка на вопрос: понимание git fetch, затем слияние

PS: ответ, предложенный по ссылке ниже в комментариях, правильный. Однако мне было интересно, что

git fetch origin 

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

git fetch origin master:master

Я не могу понять причину этой проверки. Любая помощь приветствуется.

Спасибо


person harsrawa    schedule 20.09.2016    source источник
comment
На самом деле pull — это сокращение от fetch + merge. Но решающую роль здесь играют dev:dev аргумента. Пожалуйста, взгляните на этот ответ: stackoverflow.com/a/32561463/2104879   -  person mertyildiran    schedule 21.09.2016
comment
Привет Mertyildiran, Спасибо за помощь мне. Предложенный вами ответ является правильным.   -  person harsrawa    schedule 21.09.2016


Ответы (1)


фатальный: отказ от загрузки в текущую ветку refs/heads/dev не голого репозитория

Эта ошибка обычно означает, что вы получаете ветку, у которой нет удаленной ветки. Здесь я делаю некоторые предположения, что вы хотите получить из репозитория origin и объединить последние изменения из dev в свою локальную ветку. Если это так, то вы хотите попробовать следующее:

git fetch origin
git merge origin/dev
person blr    schedule 20.09.2016
comment
Если выборка загружает изменения только из удаленной ветки и обновляет данные репозитория, но оставляет локальную ветку без изменений, какой смысл в выборке, если рабочий каталог не будет отображать/отражать изменения? Первоначально мой вопрос заключался в том, как я могу увидеть изменения, внесенные кем-то другим, а затем решить, хочу ли я объединить их в свой рабочий каталог (т.е. поэкспериментировать с изменениями других людей, чтобы убедиться, что это не нарушит мою работу), но я все еще запутался как это сделать. Стоит ли мне просто пулить и экспериментировать/исследовать, а если было проблематично, сделать хард ресет? - person ; 09.06.2018