Я только что заметил что-то странное о git pull
, которое я не понимаю.
В пятницу я работал в местном отделении. позвоните ему mybranch
. Перед тем, как покинуть офис, я подтолкнул его к происхождению (это мой репозиторий github): git push origin mybranch
.
Вчера у себя дома я pull
редактировал mybranch на своем ноутбуке, делал еще немного кодирования, а затем возвращал свои изменения обратно в github (происхождение).
Теперь я снова нахожусь на работе и пытался вытащить изменения со вчерашнего дня на свой рабочий компьютер (я ничего не менял в своем рабочем месте на местном репо за выходные):
git pull origin mybranch
что вызвало ускоренное слияние, что хорошо. Затем я сделал a git status
, и он сказал:
# On branch mybranch
# Your branch is ahead of 'origin/mybranch' by 6 commits.
#
nothing to commit (working directory clean)
А? Как это может быть на 6 минут вперед, когда я даже не касался его в выходные, и просто вытащил из источника? Итак, я запустил git diff origin/mybranch
, и различия были именно теми 6 изменениями, которые я только что вытащил из удаленного.
Я мог бы "исправить" это, выполнив git fetch origin
:
From [email protected]:me/project
af8be00..88b0738 mybranch -> origin/mybranch
По-видимому, в моем локальном репо отсутствовали некоторые ссылочные объекты, но как это может быть? Я имею в виду, что притяжение уже делает выборку, и я не работал ни на чем, кроме этой ветки, поэтому a git fetch origin
и git fetch origin mybranch
должны иметь одинаковый результат?
Должен ли я всегда использовать git pull origin
вместо git pull origin branchname
?
Я смущен.