Параметр --source
для git log
немного сбивает с толку, я боюсь. Это означает, что каждый коммит будет отображаться с ссылкой, по которой он был найден - это не значит, что он будет перечислять все ссылки, содержащие этот коммит. В вашем случае, гипотетический вывод аналогичного параметра, который включал бы все ссылки, содержащие этот коммит, был бы:
* commit 1d1832 refs/heads/qux
| Author: myname <myemail@gmail.com>
| Date: Sun Sep 25 00:39:06 2011 +0300
|
| qux more
|
* commit ce7ae7 refs/heads/qux refs/remotes/origin/qux
| Author: myname <myemail@gmail.com>
| Date: Sun Sep 25 00:24:42 2011 +0300
|
| qux another
|
* commit ef2ea7 refs/heads/qux refs/remotes/origin/qux
| Author: myname <myemail@gmail.com>
| Date: Sun Sep 25 00:15:56 2011 +0300
|
| qux
... и вы можете подтвердить это, просматривая историю с помощью gitk --all
, или пытаясь git branch -a --contains ef2ea7
и т. Д.
Итак, все, что происходит, это то, что когда вы запустили git log
во второй раз, он сначала проверил ветвь удаленного отслеживания origin/qux
, а затем ветвь qux
, над которой вы работаете. Что касается того, почему этот порядок должен отличаться между двумя вызовами, я боюсь, я не уверен.
Отрасль удаленного слежения отстает, поскольку вы не обновили ее с помощью git push
или git fetch
.