[править: добавил выходные команды по запросу и реорганизовал для ясности] Я получил два клона конкретного репо.
git log
commit e06424b5...
...
commit 557a0eb8...
показывает то же самое в обоих, с одинаковым хешем вверху.
git remote show origin
одинаковое в обоих
git branch
* master
все еще одинаково в обоих
Теперь некоторые отличия.
От «хорошего» клона:
git log origin/master..
commit e06424b5...
git show-ref HEAD
e06424b5... refs/remotes/origin/HEAD
# On branch master
nothing to commit (working directory clean)
От «плохого» клона:
git log origin/master..
commit 557a0eb8...
git show-ref HEAD
557a0eb8... refs/remotes/origin/HEAD
git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
Это отличается [исправление: ранее я сообщал, что этот вывод был таким же].Похоже, что show-ref указывает, что эта проверка на один коммит отстает от , в то время как статус говорит, что он впереди.Но git reset --hard e06424b5
ничего не меняет.
Когда я спрашиваю «плохого» клона, что он думает, что нужно нажать:
git diff --stat origin/master
показывает файлы, которые были частью коммита e06424b5,но на самом деле единственная причина, по которой у этой проверки даже есть эти файлы, заключается в том, что я вытащил их.
Кто-нибудь знает, как заставить извлечение осознать, что ему нечего нажать?
[править: здесьнекоторые дополнительные команды и их выходы из «плохого» клона ...]
git log --graph --decorate --oneline
* e06424b (HEAD, master)
* 557a0eb (origin/master, origin/HEAD)
git rev-parse origin/master
557a0eb
git rev-parse HEAD
557a0eb (the previous hash)
e06424b (the correct, most recent hash)