Sepertinya ini masih menjadi masalah tanpa solusi yang tepat. Saya tidak memiliki cukup kredit untuk dikomentari, jadi inilah kontribusi kecil saya.
Solusi pertama Seth Robertson agak berhasil untuk saya, tetapi hanya memberi saya cabang lokal, di antaranya banyak positif palsu, mungkin karena penggabungan dari cabang stabil.
Solusi kedua Adam Dymitruk sama sekali tidak berhasil untuk saya. Sebagai permulaan, apa --format =% 5? Itu tidak dikenali oleh git, saya tidak dapat menemukan apa pun tentangnya dan saya tidak dapat membuatnya berfungsi dengan opsi format lain.
Tetapi solusi pertamanya yang dikombinasikan dengan opsi --source dan dengan grep sederhana terbukti membantu:
git log --all --source -- <filename> | grep -o "refs/.*" | sort -u
Ini memberi saya sejumlah tag dan cabang jarak jauh dan satu cabang lokal, tempat saya membuat perubahan terbaru pada file. Tidak yakin seberapa lengkapnya ini.
UPDATE sesuai permintaan @nealmcb, menyortir cabang berdasarkan perubahan terbaru:
Pertama, Anda dapat mengubah grep menjadi "refs / heads /.*", yang akan memberi Anda cabang lokal saja. Jika hanya ada beberapa cabang, Anda dapat memeriksa komit terbaru dari masing-masing cabang seperti ini:
git log -1 <branch> -- <filename>
Jika ada lebih banyak cabang dan Anda benar-benar ingin mengotomatiskannya, Anda dapat menggabungkan dua perintah menggunakan xargs, git log formatting dan jenis lain ke dalam satu baris ini:
git log --all --source -- <filename> | grep -o "refs/heads/.*" | sort -u | xargs -I '{}' git log -1 --format=%aI%x20%S '{}' -- <filename> | sort -r
Ini akan menghasilkan keluaran seperti ini:
2020-05-07T15:10:59+02:00 refs/heads/branch1
2020-05-05T16:11:52+02:00 refs/heads/branch3
2020-03-27T11:45:48+00:00 refs/heads/branch2