Apa statusnya memberitahu Anda adalah bahwa Anda berada di belakang wasit yang disebut origin/master sebagai ref lokal di repo lokal Anda . Dalam hal ini ref yang terjadi untuk melacak cabang di beberapa remote, dipanggil origin, tetapi statusnya tidak memberi tahu Anda apa pun tentang cabang di remote. Ini memberi tahu Anda tentang ref, yang hanya merupakan ID komit yang disimpan di sistem file lokal Anda (dalam hal ini, biasanya dalam file bernama.git/refs/remotes/origin/master di repo lokal Anda).
git pullmelakukan dua operasi; pertama-tama ia melakukan git fetchpembaruan dengan komit di repo jarak jauh (yang memperbarui origin/masterref di repo lokal Anda), lalu git mergekomit untuk menggabungkan komit-komit tersebut ke cabang saat ini.
Sampai Anda melakukan fetchlangkah (baik sendiri atau via git pull) repo lokal Anda tidak memiliki cara untuk mengetahui bahwa ada komit tambahan di hulu, dan git statushanya melihat origin/masterreferensi lokal Anda .
Ketika git statusmengatakan up-to-date, itu berarti "up-to-date dengan cabang yang dilacak oleh cabang saat ini", yang dalam hal ini berarti "up-to-date dengan referensi lokal yang disebut origin/master". Itu sama dengan "up-to-date dengan status upstream yang diambil terakhir kali kami melakukan fetch" yang tidak sama dengan "up-to-date dengan status live terbaru dari upstream".
Mengapa bisa seperti ini? Yah fetchlangkahnya adalah operasi jaringan yang berpotensi lambat dan mahal. Desain Git (dan sistem kontrol versi terdistribusi lainnya ) adalah untuk menghindari operasi jaringan jika tidak diperlukan, dan merupakan model yang sangat berbeda dengan sistem client-server tipikal yang digunakan banyak orang (walaupun seperti ditunjukkan dalam komentar di bawah, konsep Git dari "cabang pelacakan jarak jauh" yang menyebabkan kebingungan di sini tidak dibagikan oleh semua DVCS). Sangat mungkin untuk menggunakan Git offline, tanpa koneksi ke server terpusat, dan output git statusmencerminkan hal ini.
Membuat dan mengalihkan cabang (dan memeriksa statusnya) di Git seharusnya ringan, bukan sesuatu yang melakukan operasi jaringan lambat ke sistem terpusat. Asumsi ketika mendesain Git, dan git statushasilnya, adalah bahwa pengguna memahami ini (terlalu banyak fitur Git hanya masuk akal jika Anda sudah tahu cara kerja Git). Dengan adopsi Git oleh banyak dan banyak pengguna yang tidak terbiasa dengan DVCS asumsi ini tidak selalu valid.