Bagaimana Anda membayar repositori Anda sendiri di GitHub?

164

Saya memiliki repositori publik di GitHub. Saya ingin mereplikasi / menyalinnya dan mengerjakan proyek baru berdasarkan repositori ini, tetapi saya tidak ingin memengaruhi keadaannya sekarang. Saya mencoba forking menggunakan GitHub UI tetapi tidak melakukan apa-apa.

WowBow
sumber
4
Apa yang sebenarnya ingin Anda capai? Mungkin Anda bisa menyelesaikannya hanya dengan bercabang?
Artefact2
4
Saya ingin mendapatkan salinan proyek dan memperluas proyek itu untuk melakukan sesuatu yang lain tetapi tanpa mempengaruhi proyek asli. Itu dia. Bagaimanapun, itu dipecahkan.
WowBow
1
@ Artefact2 .. Maaf, saya pikir solusi oleh mcepl memecahkan kebutuhan saya, tetapi tidak. Setelah saya mengkloning proyek menggunakan 'git clone', saya tidak ingin menunjuk ke repo asli tetapi ke repo baru pada github yang saya buat. Bagaimana saya bisa mencapainya?
WowBow
1
@ Artefact2 Apakah Anda mendapatkan pertanyaan saya?
WowBow
1
Manfaat garpu dibandingkan dengan membuat repo baru adalah bahwa grafik dan riwayat jaringan dihubungkan bersama. Sayang sekali bahwa Github tidak mengizinkan ini.
kenchew

Jawaban:

205

Saya tidak berpikir Anda bisa membayar repo Anda sendiri.
Mengkloning dan mendorongnya ke repo baru itu bagus tetapi Anda perlu:

git clone https://github.com/userName/Repo New_Repo
cd New_Repo
git remote set-url origin https://github.com/userName/New_Repo
git remote add upstream https://github.com/userName/Repo
git push origin master
git push --all

(lihat git push)

Lihat semua proses yang dijelaskan di " Fork proyek Anda sendiri di GitHub ".


Enam tahun kemudian (2016), Anda sekarang memiliki importir GitHub yang memungkinkan Anda mengimpor repo dari sumber lain ... termasuk GitHub.
Lihat " Mengimpor repositori dengan Importir GitHub "

https://help.github.com/assets/images/help/importer/import-repository.png

Nari 's jawaban (upvoted) juga menggambarkan proses itu.

Itu akan memungkinkan Anda untuk membuat repositori baru dan mengimpor sejarah lengkap dari yang lama ke yang baru, menggunakan url GitHub-nya.

Sekali lagi: apa yang Anda dapatkan adalah salinan, bukan garpu sungguhan: Anda tidak dapat membuat permintaan tarik dari repo baru ke yang lama.

Sekali lagi (bis), sebagaimana dinyatakan dalam komentar oleh mpersico, ini bukan FORUM BENAR.

Jika saya memiliki foo yang merupakan repo sumber kanonik untuk proyek open source yang saya ingin orang lain garpu dan memiliki akses untuk melakukan PR, maka saya tidak ingin bekerja dalam repo itu, saya ingin garpu yang dapat saya gunakan untuk menerbitkan PR yang tepat terhadap proyek saya.
Saya telah menyelesaikan ini dengan membuat akun kedua di GitHub dan memalsukannya.

VONC
sumber
Terima kasih @VonC. Saya pikir Anda lupa menyebutkan mengedit file konfigurasi.
WowBow
1
Saya sedang berbicara tentang git / config. Kecuali Anda mengubah url asal, ketika Anda mengatakan "git remote add ....", itu akan menolak Anda karena, nama asal sudah ada. Tapi begitu saya mengubah url di file config itu berfungsi dengan baik. Artikel yang Anda tunjukkan kepada saya menunjukkan hal itu.
WowBow
7
@WowBow jika remotesudah ada, maka lakukan a git remote set-url origin https://github.com/userName/New_Repo. Itu akan mengubah .git/configfile untuk Anda. Lihat git-scm.com/docs/git-remote
VonC
1
@aus yang diharapkan, bagi Anda untuk mengambil dari hulu. Lihat stackoverflow.com/a/33360766/6309
VonC
1
Saya masih merasa bahwa forking dari repo di organisasi yang sama harus diizinkan. Bagaimana jika ada repositori pusat yang umum untuk semua orang dan Anda ingin mendapatkan pembaruan darinya setiap saat dan pada saat yang sama melakukan perubahan spesifik pada salinan bercabang Anda berdasarkan kebutuhan Anda?
Prachi
107

Cara super mudah untuk melakukannya dalam 30 detik dari situs web GitHub:

  1. Salin URL repo Anda. Contoh: https://github.com/YourName/YourOldRepo(petunjuk: ini adalah URL ketika Anda melihat halaman utama repo Anda di github.
  2. Klik +ikon di sudut kanan atas.
    https://i.stack.imgur.com/9zJgo.png
  3. Pilih "Impor repositori".
  4. Di mana ia meminta "URL Lama", rekatkan URL yang Anda salin pada langkah # 1
    https://i.stack.imgur.com/vgWd3.png
  5. Masukkan nama repo baru Anda dan klik Begin Import.
  6. Itu dia! Anda sekarang memiliki salinan repo lengkap, dengan semua riwayat komit dan cabang!

Keterbatasan: Ini sebenarnya bukan garpu sungguhan. Ini salinan dari repo. Itu tidak akan memungkinkan untuk melakukan permintaan bolak-balik.

narF
sumber
4
Saya lupa Importir GitHub (dirilis pada 2016) pada jawaban saya yang lama di tahun 2010: Saya telah menambahkan referensi ke alat itu, dan ke jawaban Anda.
VonC
4

Cukup tirukan, buat repo kosong baru, dan dorong ke sana.

mcepl
sumber
1
Terima kasih. Saya terlalu banyak berpikir.
WowBow
Saya mengkloningnya ke mesin lokal saya dan membuat repo kosong tetapi, ketika saya mencoba git origin github.com/userName/New_Repo.git .. katanya asal remote sudah ada. Bagaimana saya harus menyelesaikannya?
WowBow
Dan sekarang ketika saya mendorongnya sedang mengubah repo asli.
WowBow
Bisakah Anda memberi tahu saya cara mendorong ke repo baru? Saya melakukan klon dan membuat repo baru tetapi saya tidak bisa mendorong ke repo baru.
WowBow
5
Anda harus mengubah remote. Kalau tidak, itu akan mencoba untuk mendorong ke lokasi yang sama. git remote rm origindiikuti olehgit remote add origin URL-to-new-repository
wadesworld
1

Saya mengikuti instruksi resmi ini untuk "Menduplikasi repositori" dan sepertinya berhasil.

https://help.github.com/articles/duplicating-a-repository/

Untuk membuat duplikat repositori tanpa forking, Anda perlu menjalankan perintah klon khusus terhadap repositori asli dan mirror-push ke repositori baru. Ini berfungsi dengan repositori git apa pun, bukan hanya yang di-host di GitHub.

Phocks
sumber
1

Solusi VonC yang diterima, sayangnya, tidak bekerja untuk saya seperti yang saya dapatkan

jarak jauh: Repositori tidak ditemukan

Apa yang berhasil adalah sebagai berikut:

  1. Buat new_repo di github
  2. git clone new_repo
  3. cd new_repo
  4. git remote menambahkan upstream old_repo.git
  5. git tarik master hulu
  6. git dorong master asal

Saya mendapatkan semua yang di atas dari sini .

Nick
sumber
1

Untuk yang tidak paham teknologi dalam menggunakan GitHub, berikut adalah satu solusi sederhana sebagai alternatif dari jawaban hebat lainnya di atas. Yang Anda butuhkan hanyalah aplikasi GitHub Desktop.

  1. Buka repo proyek Anda sendiri dari browser, dan unduh sebagai zip, mis your-project-master.zip.
  2. Buka zip dan ganti nama sebagai repo baru Anda.
  3. Buka GitHub Desktop, dan tambahkan repo baru Anda dengan menjelajahinya ke jalur lokal baru yang tidak di-zip. masukkan deskripsi gambar di sini
  4. Publikasikan ke github Anda, dengan mengklik tombol publikasikan. Jangan lupa untuk menambahkan nama dan deskripsi :)
Zuzu Softman
sumber
-1

Baru saja mencoba ini, dan berhasil:

  1. Fork repo Anda ke akun organisasi
  2. Ganti nama itu
  3. Transfer kepemilikan kembali ke diri Anda sendiri
Dominykas Blyžė
sumber
4
Ide bagus tapi saya hanya mencoba ini dan mendapat kesalahan: aspiers already has a repository in the UPSTREAM/NAME network.
Adam Spires
ini karena mereka sekarang memiliki pengalihan setelah Anda mengganti nama atau mentransfer repositori Anda github.com/blog/1508-repository-redirects-are-here
shadowbq
-1

Saat Anda membuat repo baru, Anda dapat mengimpor dari repo lain dengan url repo .git. Butuh waktu 30 detik.

Gino
sumber