Perintah yang Anda inginkan git ls-remote
memungkinkan Anda mendapatkan beberapa informasi tentang repositori jarak jauh, tetapi Anda tidak dapat menampilkan riwayat atau daftar direktori atau apa pun dari level itu: pada dasarnya ini hanya memungkinkan Anda melihat objek jarak jauh pada tingkat yang sangat tinggi (Anda dapat melihat HEAD dan tag saat ini misalnya).
Satu-satunya cara nyata untuk melakukan apa yang Anda inginkan (jika saya mengerti dengan benar) adalah menggunakan ssh untuk menjalankan perintah jarak jauh dan mengembalikan hasilnya, misalnya:
ssh me@otherhost "cd repo && git log -n 10"
Apa yang Anda inginkan akan menjadi fungsionalitas yang indah jika mereka dapat menambahkannya, tetapi dari apa yang saya baca itu tidak terlalu mudah karena mendapatkan riwayat dll membutuhkan banyak informasi agar menjadi lokal untuk git, dan pada saat itu Anda mungkin juga telah melakukan git fetch .
git clone
adalah mengambil hanya satu revisi dengan meneruskan--depth 1
. Hal ini untuk menghindari kemungkinan pengambilan histori dalam jumlah besar, dan akan cukup untuk menjawab pertanyaan seperti "file mana yang ada dalam revisiabcdef1234567890
?"Git adalah sistem kontrol versi terdistribusi , sedangkan Subversion adalah sistem kontrol versi terpusat (client-server). Mereka bekerja secara berbeda; terbiasa dengan itu. Harap baca jawaban saya yang menjelaskan konsekuensi dari perbedaan itu dengan pertanyaan yang setara
svn status -u
di StackOverflow.Mengulangi diri sendiri sedikit: dalam sistem kontrol versi terpusat (seperti CVS atau Subversion) hampir semua perintah diproses di server , dan melibatkan jaringan. Sangat sedikit perintah yang dijalankan secara lokal. Perhatikan bahwa untuk memiliki kinerja yang baik dari "status svn" dan "svn diff" Subversion menyimpan 'salinan asli' dari versi check-out pada klien, tidak perlu melibatkan transfer jaringan untuk operasi umum tersebut (ini berarti bahwa Subversion checkout = 2 x ukuran direktori kerja setidaknya).
Dalam sistem kontrol versi terdistribusi (seperti Git, Mercurial atau Bazaar), di mana Anda memiliki salinan lokal (klon) dari seluruh repositori, hampir semua perintah dilakukan pada klien . Sangat sedikit perintah yang memerlukan koneksi jaringan ke repositori lain (ke server).
Jumlah perintah yang dapat Anda lakukan di server terbatas.
" git archive --remote = <URL> HEAD".
" git clone --depth = 1 <URL>".
sumber
Lihat http://git-scm.com/book/en/Git-Internals-Transfer-Protocols untuk info tentang cara melakukan ini pada beberapa protokol transport. Perhatikan bahwa ini tidak akan berfungsi untuk git standar melalui SSH.
Untuk git over SSH, git sisi server terbaru akan memungkinkan Anda untuk mengarsipkan git langsung dari jarak jauh, yang kemudian Anda dapat misalnya menyalurkan ke "tar t" untuk mendapatkan daftar semua file dalam komit yang diberikan.
sumber
GitHub kompatibel dengan svn sehingga Anda dapat menggunakan svn ls
BitBucket mendukung arsip git sehingga Anda dapat mengunduh arsip tar dan membuat daftar file yang diarsipkan. Ini tidak terlalu efisien tetapi berfungsi:
sumber
Bukan persisnya, tapi jalan memutar.
Gunakan GitHub Developer API
Membuka ini akan memberi Anda komitmen terbaru.
https://api.github.com/repos/learningequality/ka-lite/commits
Anda bisa mendapatkan detail komit spesifik dengan melampirkan hash komit di akhir url di atas.
Semua file (Anda membutuhkan sha untuk pohon utama)
https://api.github.com/repos/learningequality/ka-lite/git/trees/7b698a988683b161bdcd48a949b01e2b336b4c01
Saya harap ini dapat membantu.
sumber
Ini mungkin dianggap kotor oleh beberapa orang, tetapi solusi yang sangat praktis dalam kasus repositori github adalah hanya membuat skrip, misalnya "git-ls":
Buatlah dieksekusi dan terjangkau tentu saja:
chmod a+x git-ls; sudo cp git-ls /usr/local/bin
. Sekarang, Anda tinggal menjalankannya sesuai keinginan:Ketahuilah juga bahwa ada
git instaweb
utilitas untuk file lokal Anda. Memiliki kemampuan untuk menampilkan file dan memiliki server seperti itu menurut saya tidak merusak salah satu karakteristik terdesentralisasi yang melekat pada git.sumber
curl -s https://github.com/Itseez/opencv | grep js-directory-link | sed 's|.* title="\(.*\)".*|\1|'
jika Anda mengetahui cabang jarak jauh yang ingin Anda periksa, Anda dapat mengetahui yang terbaru melalui:
sumber