Bagaimana saya bisa garpu repositori publik, tetapi membuat garpu saya pribadi? Saya memiliki langganan untuk mendukung repositori pribadi.
Jawabannya benar tetapi tidak menyebutkan cara menyinkronkan kode antara repo publik dan garpu.
Berikut ini adalah alur kerja lengkap (kami telah melakukan ini sebelum membuka sumber React Native ):
Pertama, duplikat repo seperti yang orang lain katakan (detail di sini ):
Buat repo baru (sebut saja private-repo
) melalui UI Github . Kemudian:
git clone --bare https://github.com/exampleuser/public-repo.git
cd public-repo.git
git push --mirror https://github.com/yourname/private-repo.git
cd ..
rm -rf public-repo.git
Kloning repo pribadi sehingga Anda dapat mengerjakannya:
git clone https://github.com/yourname/private-repo.git
cd private-repo
make some changes
git commit
git push origin master
Untuk menarik minat baru dari repo publik:
cd private-repo
git remote add public https://github.com/exampleuser/public-repo.git
git pull public master # Creates a merge commit
git push origin master
Luar biasa, repo pribadi Anda sekarang memiliki kode terbaru dari repo publik plus perubahan Anda.
Akhirnya, untuk membuat permintaan tarik repo pribadi -> repo publik:
Gunakan GitHub UI untuk membuat garpu repo publik (tombol "Fork" kecil di kanan atas halaman repo publik). Kemudian:
git clone https://github.com/yourname/the-fork.git
cd the-fork
git remote add private_repo_yourname https://github.com/yourname/private-repo.git
git checkout -b pull_request_yourname
git pull private_repo_yourname master
git push origin pull_request_yourname
Sekarang Anda dapat membuat permintaan tarik melalui Github UI untuk repo publik, seperti dijelaskan di sini .
Setelah pemilik proyek meninjau permintaan tarik Anda, mereka dapat menggabungkannya.
Tentu saja seluruh proses dapat diulangi (tinggalkan saja langkah-langkah di mana Anda menambahkan remote).
git clone
akan mengatur cabang pelacakan jarak jauh dan mungkin beberapa konfigurasi lain dalam repo kloning yang tidak Anda inginkan. Sedangkan --bare clone hanya menyalin dir .git dari remote seperti apa adanya.git status
menunjukkan semuanya up to date, membersihkan pohon kerja tidak peduli apa pun yang saya ubah. Akibatnya saya tidak bisa melakukan dan mendorong apa pun. Saya menghapus repo pribadi baru yang saya buat 2 kali lebih banyak untuk mencoba ini tetapi terus mengalami masalah yang sama. Ada saran?Ada satu opsi lagi sekarang (Januari-2015)
sumber
Jawaban saat ini agak ketinggalan zaman, untuk kejelasan:
Jawaban singkatnya adalah:
Ini didokumentasikan di GitHub: duplikasi-a-repositori
sumber
Anda harus menggandakan repo
Anda dapat melihat dokumen ini (dari github)
https://help.github.com/articles/duplicating-a-repository
sumber
GitHub sekarang memiliki opsi impor yang memungkinkan Anda memilih apa pun yang Anda inginkan, repositori yang diimpor, publik atau pribadi
sumber