Bagaimana cara menavigasi ke komit paling awal dalam repositori Github?


152

Di GitHub, adakah cara mudah untuk menavigasi ke komit awal proyek open source besar?

Proyek ini memiliki lebih dari 13.000 komitmen pada hari ini. Saya tidak ingin harus menekan tombol "Lama" pada halaman histori komit ratusan kali untuk mencapai komit awal (atau komit pertama).


2
Sudahkah Anda mempertimbangkan untuk mengkloning repositori untuk menavigasi secara lokal?
jub0bs


Wawasan / Kontributor menunjukkan berbagai komitmen untuk menguasai cabang.
ToolmakerSteve

Jawaban:


102

Klon repositori, buka dengan baris perintah dan jalankan $ git log --reverse

Ini akan menampilkan komit dalam urutan terbalik.

Kemudian Anda dapat melihatnya di github setelah Anda memiliki ID (Nama Objek) dari komit pertama ... sesuatu seperti ... https://github.com/UserName/Repo/commit/6a5ace7b941120db5d2d50af6321770ddad4779e


16
Aku tidak percaya betapa anehnya, biz yang terlalu rumit yang harus kusaring untuk menemukan satu jawaban sederhana dan masuk akal. Terima kasih.
Sammitch

7
Satu tweak, saya akan menambahkan onelinearg ke ini - git log --reverse --onelinesehingga Anda dapat melihatnya sebagai daftar
rynmrtn

Dan jika Anda menggunakan prompt perintah Windows dan ingin menghindari tersedot ke Vim (?), Gunakan git log --reverse --oneline | more. morePerilaku standar , Ctrl + C untuk berhenti.
Sinjai

82

Tidak ada UI yang jelas untuk melakukan ini, tetapi ada cara untuk membangun URL yang tepat untuk pergi ke halaman salah satu dari log komit.

Misalkan kita ingin mencari komit pertama dari repositori dotnet / coreclr . Pertama-tama catat jumlah komit dalam repositori: saat ini 16.634. Sekarang, masuk ke daftar commit, dan klik "Lama" sekali . URL akan menjadi seperti ini:https://github.com/dotnet/coreclr/commits/master?after=872095a758a3a6191a9798c94a98e8d1e16b2254+34

Perhatikan +34bagian itu. Itulah berapa banyak komit yang dilewati. Ubah itu menjadi 16.634 minus 1 minus 35 per halaman, yang memberi kami URL ini , yang akan membawa Anda langsung ke halaman pertama dari sejarah komit coreclr.


4
Bagus, saya membuat bookmarklet untuk melakukan ini. github.com/bpceee/oldest
bpceee

Ini adalah jawaban yang baik untuk melihat komit awal dalam daftar komit proyek.
COil

Haha ini jauh lebih cepat daripada cara yang disarankan dalam jawaban yang diterima ;-)
aderchox

46

Februari 2015: Di GitHub , apakah ada cara mudah untuk menavigasi ke komitmen awal dari proyek open source besar?

Ya ada sekarang! (Artinya: tanpa mengkloning repo, dan melamargit log di klon lokal)

Sejak Januari 2017, Anda memiliki " Navigasi riwayat file lebih cepat dengan tampilan menyalahkan yang ditingkatkan " di GitHub.

Apakah Anda sedang men-debug suatu regresi atau mencoba memahami bagaimana beberapa kode memiliki bentuk saat ini, Anda akan sering ingin melihat seperti apa suatu file sebelum perubahan tertentu.
Dengan tampilan menyalahkan yang ditingkatkan, Anda dapat dengan mudah melihat bagian mana pun dari file Anda yang telah berevolusi dari waktu ke waktu tanpa melihat riwayat penuh file tersebut .

Ini adalah demo untuk kembali ke komit tertua asli dari git / git repo itu sendiri (47K + komit) ... dalam tiga klik!

demo git / git

Kuncinya di sini adalah memilih file yang kemungkinan ditemukan di komit pertama (atau sangat awal), seperti a README.md.


8
Ini biasanya berfungsi, tetapi mengasumsikan bahwa Anda tahu file mana yang ada saat repo dibuat, dan bahwa Anda dapat menemukan baris yang tidak berubah berkali-kali sejak awal.
Wilfred Hughes

1
@WilfredHughes Saya menggunakan metode ini untuk Go untuk melompat kembali 32,986 berkomitmen untuk komit pertama yang kebetulan merupakan telur paskah yang menyenangkan. Dalam hal ini, readme tidak kembali sampai awal, jadi saya mengulangi prosesnya dengan menekan Browse filesdan membuka file yang berbeda.
andrewarchi

@andrewarchi Bagus sekali. Sebenarnya beberapa commit pertama adalah easter-eggs: stackoverflow.com/a/21981037/6309
VonC

Saya akan menganggap ini sebagai "solusi" sedangkan jawaban oleh @schmalzy lebih langsung.
Jimmy Bosse

@ JimmyBosse Ini bukan solusi. Itu adalah jawaban untuk pertanyaan awal. A git loghanya berfungsi jika Anda mengkloning repo (berpotensi besar) secara lokal. Jika Anda ingin " menavigasi " ke komit pertama, maka ini dia.
VonC

37

Saya ingin melihat salah satu komitmen awal dari proyek nodejs . Saya telah melakukan yang berikut ini.

  1. Mengunjungi situs nodejs . Kemudian mengamati bahwa jumlah total komitmen adalah sekitar dua puluh tiga ribu (tepatnya 23652) pada titik waktu ini.

masukkan deskripsi gambar di sini

  1. Selanjutnya saya mengklik tautan komit itu dan itu membawa saya ke https://github.com/nodejs/node/commits/master seperti yang ditunjukkan di bawah ini.

masukkan deskripsi gambar di sini

  1. Sekarang gulir ke bawah ke bawah dan saya menemukan tombol Baru dan Lama. Tombol Baru dinonaktifkan. Saya mengklik tombol yang lebih lama dan itu membawa saya ke https://github.com/nodejs/node/commits/master?after=de37ba34c5d6f3a2d18daf482f850be8fddb4621+34

  2. Sekarang perhatikan bahwa url memiliki +34. Sekarang saya mengubahnya menjadi 23000 (karena jumlah komit yang saya amati adalah 23000). Jadi url baru yang saya coba adalah

https://github.com/nodejs/node/commits/master?after=de37ba34c5d6f3a2d18daf482f850be8fddb4621+23000

  1. Sekarang saya hampir sampai. Dengan beberapa iterasi atau klik tombol yang lebih lama, saya mencapai di mana saya inginkan.

2
Apakah ini duplikat dari jawaban 2 jawaban di atas Anda? stackoverflow.com/a/49647826
Edric

2
adalah duplikat jawaban, tapi saya suka gambarnya, itu membuatnya lebih menarik.
winner_joiner

7

Anda dapat menavigasi ke komit pertama repositori GitHub menggunakan bookmarklet init .

INIT

Sebuah bookmarklet untuk cepat mendapatkan Anda untuk pertama komit dari repo.

Gambaran

Mampu menavigasi ke komit terlama dalam repo cukup membantu. Lanjutkan dan seret bookmarklet (tautan) ke bilah bookmark Anda dan klik setiap kali Anda ingin pergi ke komit pertama dari repo.

Pemakaian

Buka halaman arahan repo tertentu (e.g. like the one you're on)dan klik bookmarklet, yang akan membawa Anda ke halaman pertama (komit awal). Secara default, ini melacak mastercabang, tetapi jika Anda mengubah branchpada halaman pendaratan, itu akan pergi ke komit pertama cabang itu.

Diperoleh dari README.md di GitHub


Penafian : Saya menyumbang pembaruan Readme kecil untuk init beberapa menit sebelum memposting jawaban ini.


7

Anda dapat membuka halaman pertama dari komit dengan yang berikut ini, yang saya simpan sebagai cuplikan di alat dev Chrome.

function githubFirstCommitsPage() {
  let el = document.querySelector('.repository-content');
  let base = el.querySelector('a[data-pjax]').href;
  let count = el.querySelector('.commits .num')
    .textContent
    .trim()
    .replace(/[^\d\.\-]/g, "");
  count = count-36;
  let sha = el.querySelector('.commit-tease-sha')
    .href
    .split('/');
  sha = sha[sha.length-1];
  window.location = `${base}?after=${sha}+${count}`;   
}

githubFirstCommitsPage();

1
Terima kasih! Saya tidak tahu Anda dapat menyimpan cuplikan seperti itu sehingga pos Anda bermanfaat pada dua dimensi.
bmacnaughton

6

Anda harus menggunakan git log --reverseperintah git.

Ini akan mengembalikan histori komit untuk repo yang ditentukan dalam urutan terbalik (terlama ke terbaru).

Kemudian, dengan bantuan sedsihir, Anda dapat memiliki sesuatu seperti tanggal komit pertama (yang saya lihat selalu saya butuhkan untuk diri saya sendiri).

git log --reverse | sed -n 3p

Pada akhirnya, Anda mungkin ingin mengotomatiskan ini juga (, karena kebanyakan membosankan untuk mengetik perintah atau hanya mustahil untuk mengingatnya), jadi skrip shell seperti ini mungkin datang untuk menyelamatkan.



Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.