it-swarm-id.com

Cara mendapatkan komitmen tertentu dari proyek GitHub

Saya perlu mengunduh API Facebook dari GitHub . Biasanya, saya cukup klik pada tab 'Unduhan "untuk mengunduh kode sumber terbaru. Dalam hal ini, saya memerlukan komit yang lebih lama: 91f256424531030a454548693c3a6ca49ca3f35a , tapi saya tidak tahu cara mendapatkan seluruh proyek dari komit itu .. .

Dapatkah seseorang tolong beri tahu saya cara melakukan ini?

(BTW, saya di mac. Tidak tahu apakah itu membuat perbedaan).

115
w00

Pertama, klon repositori menggunakan git, mis. dengan:

git clone git://github.com/facebook/facebook-ios-sdk.git

Itu mengunduh riwayat lengkap repositori, sehingga Anda dapat beralih ke versi apa pun. Selanjutnya, ubah ke repositori yang baru dikloning:

cd facebook-ios-sdk

... dan gunakan git checkout <COMMIT> untuk mengubah ke komit kanan:

git checkout 91f25642453

Itu akan memberi Anda peringatan, karena Anda tidak lagi di cabang, dan telah beralih langsung ke versi tertentu. (Ini dikenal sebagai keadaan "HEAD terpisah".) Karena kedengarannya seolah-olah Anda hanya ingin menggunakan SDK ini, daripada secara aktif mengembangkannya, ini bukan sesuatu yang perlu Anda khawatirkan, kecuali jika Anda tertarik untuk mencari tahu lebih lanjut tentang cara kerja git.

172
Mark Longair

Saya tidak tahu apakah itu ada di sana ketika Anda memposting pertanyaan ini, tetapi cara terbaik dan termudah untuk mengunduh komit adalah dengan mengeklik tab commit saat melihat repositori. Kemudian alih-alih mengklik pada nama komit, klik pada Jelajahi repositori pada titik ini dalam tombol histori dengan simbol <> di sebelah kanan komit nama/pesan, dan akhirnya pada Unduh tombol Zip yang muncul ketika Anda mengklik tombol Klon atau Unduh.

Saya harap ini membantu kalian.

112
Sivan

Jawaban Sivan di gif  enter image description here

1. Klik komitmen di github

2. Pilih Telusuri kode di sebelah kanan setiap komit 

3. Klik pada Zip pengunduhan, yang akan mengunduh kode sumber pada saat komit 

20
Suraj K Thomas

Cara termudah yang saya temukan untuk memulihkan komit yang hilang (yang hanya ada di github dan bukan lokal) adalah membuat cabang baru yang menyertakan komit ini.

  1. Miliki komit terbuka (url seperti: github.com/org/repo/commit/long-commit-sha)
  2. Klik "Jelajahi File" di kanan atas
  3. Klik tarik-turun "Tree: short-sha ..." di kiri atas
  4. Ketikkan nama cabang baru
  5. git pull cabang baru ke lokal
7
Jeff

Untuk mengunduh komit menggunakan formulir pendek SHA1 7 digit, lakukan:

Contoh Kerja:

https://github.com/python/cpython/archive/31af650.Zip  

Keterangan:  

 `https://github.com/username/projectname/archive/commitshakey.Zip`

Jika Anda memiliki kunci hash panjang 31af650ee25f65794b75d4dfefed6fe4758781c1, dapatkan 7 karakter pertama 31af650. Ini default untuk GitHub.

4
user1767754

Sebagai tambahan untuk jawaban yang diterima:

Untuk melihat hash Anda perlu menggunakan perintah yang disarankan "git checkout hash ", Anda dapat menggunakan git log. Di mana pun, tergantung pada apa yang Anda butuhkan, ada cara yang lebih mudah daripada menyalin/menempelkan hash.

Anda dapat menggunakan git log --oneline untuk membaca banyak pesan komit dalam format yang lebih terkompresi. 

Katakanlah Anda melihat ini komit satu baris dengan informasi minimal dan hanya hash yang terlihat sebagian:

hash111 (HEAD -> master, Origin/master, Origin/HEAD)
hash222 last commit
hash333 I want this one
hash444 did something
....

Jika Anda ingin last commit, Anda dapat menggunakan git checkout master^. ^ memberi Anda komit sebelum master. Jadi hash222.

Jika Anda ingin komit terakhir ke-n, Anda dapat menggunakan git checkout master~n. Misalnya, menggunakan git checkout master~2 akan memberi Anda komit hash333.

0
Smogen