Jika saya garpu proyek yang di-host di github. Apakah saya bercabang semua cabang? Bagaimana saya tahu cabang cabang garpu mana saya? Dengan kata lain cabang mana yang akan diunduh ke PC saya?
Jika saya garpu proyek yang di-host di github. Apakah saya bercabang semua cabang? Bagaimana saya tahu cabang cabang garpu mana saya? Dengan kata lain cabang mana yang akan diunduh ke PC saya?
Jawaban:
Semua cabang di GitHub akan disalin dalam garpu. (Jelas, ini tidak termasuk cabang yang tidak pernah didorong ke GitHub.)
Tetapi garpu adalah operasi GitHub-to-GitHub; tidak ada yang disalin ke PC Anda. Itu tidak persis sama dengan klon Git . Jika Anda bermaksud bertanya "apa yang disalin ketika saya mengkloning suatu proyek?", Lihat manual untuk git-clone(1)
.
Pikirkan seperti ini:
Repo [sitory] berhubungan dengan kerja sama tim dalam satu atau banyak cabang. Semua kontributor memiliki salinannya sendiri.
Setiap garpu repo utama sesuai dengan karya kontributor. Garpu sebenarnya adalah konstruksi Github (bukan Git) untuk menyimpan klon repo di akun pengguna Anda. Sebagai klon, itu akan berisi semua cabang di repo utama pada saat Anda membuat garpu.
Setiap cabang dalam garpu dan / atau dalam repo utama dapat berhubungan dengan beberapa hal, tergantung pada bagaimana Anda ingin bekerja. Setiap cabang dapat merujuk ke versi proyek tetapi juga dapat sesuai dengan saluran pengembangan yang berbeda, seperti perbaikan terbaru atau pekerjaan eksperimental.
The permintaan tarik (dalam ekosistem GitHub) sesuai dengan tugas. Setiap kali saya ingin berkontribusi tugas jadi yang terisolasi ke repo utama, saya membuat permintaan tarik yang sesuai dengan komitmen yang dibuat dalam tugas itu. Komit ini ditarik baik dari saya garpu atau saya cabang ke repo utama .
Sebuah komit adalah seperangkat perubahan pada kode. Ini adalah salah satu hal paling menarik tentang Git. Anda tidak mentransfer file, Anda mentransfer log perubahan.
Fork adalah tiruan dari sisi GitHub (ia mengkloning segalanya).
Ketika Anda mengkloning repo, Anda mendapatkan semua sejarah repo tersebut, dengan semua cabangnya.
Walaupun secara teori Anda dapat mengubah cabang default repo jarak jauh , klon dari repo GitHub terutama mencari cabang master. Berarti untuk mengubah cabang "default" yang akan diperoleh klon GitHub, Anda perlu mengganti nama cabang master.
Jika Anda membuat garpu proyek dari situs web Github, Anda mendapatkan semua cabang dari proyek hulu.
Jika Anda mengkloning dari garpu yang baru dicetak ke PC lokal Anda, Anda akan memiliki origin
remote pada PC Anda menunjuk ke cabang utama dari garpu Anda di Github.
upstream
cabang adalah sesuatu yang harus Anda lakukan; dan mereka memberi tahu Anda cara melakukannya.
Ini bisa dijelaskan dengan sangat baik. Anda memiliki repositori pusat di GitHub. Setiap kali Anda mengambil klon di komputer pribadi Anda untuk melakukan beberapa perubahan, klon lokal dari repositori utama ini disebut garpu.
Cabang adalah sesuatu yang berbeda dan termasuk dalam garpu / repo. Sebenarnya cabang adalah pekerjaan Anda di tahap perkembangan yang berbeda. Mereka dibuat ketika dan ketika diminta untuk menyimpan serangkaian fungsi, untuk memberikan akses ke pengguna yang berbeda, untuk menunjukkan situs kepada klien, dll.
Saya ingin membagikan contoh kehidupan nyata ketika kita menggunakan Cabang dan ketika kita menggunakan Garpu
Kami memiliki GitLab di toko kami dan terkadang kami harus mengerjakan paket dari proyek Laravel. Kami biasanya membuat cabang dan mendorong perubahan ke cabang yang kami uji di lingkungan VM dev lokal kami ketika bekerja dengan proyek Laravel yang sebenarnya.
Katakanlah proyek kami berlokasi di
https://github.com/yardpenalty/mainproject.git
Penggunaan cabang:
Katakanlah cabang itu dipanggil It_doesnt_matter
Setelah kami memiliki cabang kami seperti yang kami inginkan untuk produksi kami kemudian membuat dorongan terakhir kami ke cabang ini dan membuat permintaan penggabungan yang kemudian masuk ke UAT untuk pengujian. Setelah pengujian melewati QC, perubahan digabung menjadi produksi.
The gabungan dari It_doesnt_matter
cabang sekarang didorong ke proyek induk
di https://github.com/yardpenalty/mainproject.git
Katakanlah proyek paket berada di
https://github.com/yardpenalty/mypackage.git
Ingatlah bahwa proyek utama menggunakan paket ini dalam produksi sehingga kami tidak dapat melakukan perubahan hanya dengan mendorongnya ke paket ini (di antara alasan lain). Katakanlah pengembang web harus mengedit paket ini untuk membuat perubahan pada produksi.
Cabang sederhana tidak akan berfungsi baik karena kami tidak dapat melihat perubahan kami tanpa menerbitkan paket dll.
Penggunaan Fork: Sekarang adalah ketika kita harus melakukan sedikit tipu daya dengan paket kami sehingga kami membuat klon dari paket produksi melalui garpu. File composer.json dapat diperbarui untuk menunjuk ke garpu yang sekarang terletak di jalur Pengguna atau Grup
Jadi kami akan membuat garpu di https://github.com/yardpenalty/mypackage.git
dan menyebutnya https://github.com/yardpenalty/yards/mypackage.git
Sekarang kita dapat memperbarui file composer.json kita untuk menunjuk ke paket ini di "repositori" kita: [array seperti itu dan kita pergi!
{
"type": "github",
"url": "https://github.com/yardpenalty/yard/mypackage.git"
}
]