Cara Git (Hub)
Jika Anda ingin membantu dalam membuat Sponge, Anda memiliki tambahan yang mengagumkan untuk API, atau Anda ingin memperbaiki Documents kami, maka Anda harus terbiasa dengan git
dan GitHub. Jika Anda sudah terbiasa dengan mendua, cabang, menerbitkan, menarik-permintaan dan menjalankan, maka lewati topik ini. Jika Anda tidak tahu apa yang sedang kita bicarakan, lalu baca terus.
Catatan
Panduan ini mengasumsikan bahwa Anda telah membaca ../ menyiapkan/git dan Anda sudah menyiapkan mesin Anda dengan klien Git pilihan Anda.
Konsep Dasar Git dan GitHub
Git memungkinkan banyak pengembang untuk mengembangkan satu perangkat lunak secara bersamaan. GitHub adalah situs web tempat pengembang dapat berkolaborasi dan berbagi pekerjaan dengan orang lain. GitHub bergantung pada Git untuk pengelolaan pekerjaan tersebut.
Tip
Jika Anda tidak terbiasa dengan kosakata Git dan GitHub, lihatlah daftar 'glossary page di GitHub <https://help.github.com/articles/github-glossary/>`_.
Dalam hal ini repo diberi nama `` SpongePowered``, memiliki dua cabang bernama `` master`` dan `` feature 1`` dan juga beberapa melakukan commit pada kedua cabang.
Mari kita memasukkan istilah-istilah ini ke dalam kontek - dimulai dengan repositori. The repositori (pendek: repo) adalah tempat di mana proyek menyimpan berkas-nya. Repositori SpongePowered terletak di `GitHub <https://github.com/SpongePowered> ` __. Namun, repo ini memiliki beberapa pembatasan akses untuk melestarikannya dari perubahan yang tidak diinginkan atau berbahaya. Anda tidak bisa hanya membuat perubahan sendiri, karena repo hanya bisa dibaca untuk pengguna biasa. Sekarang Anda mungkin bertanya-tanya bagaimana seharusnya mengajukan proposal dan perubahan. Nah, disitulah garpu * ikut bermain. Anda bisa ambil salinan repo SpongePowered, dan buat perubahan Anda di sana. Setelah selesai, Anda membukanya sebagai permintaan tarik (* PR *) pada repositori kami. Tambahan dan perubahan yang Anda usulkan kemudian dapat ditinjau ulang, dan staf akan memberi tahu Anda jika ada sesuatu yang salah, atau perlu perbaikan, dan akhirnya menggabungkan PR akhir.
Berikut adalah ringkasan singkat dari prosedur yang dijelaskan di atas, sebelum kita membahas secara rinci:
Garpu repo pilihan Anda
Kloning ke mesin lokal Anda
Buat cabang baru
Buat perubahan yang diinginkan
Uji jika semuanya bekerja
Komit perubahannya
Sinkronkan mereka ke GitHub
Mengusulkan perubahan dalam PR ke SpongePowered Repo
Ubah ke PR Anda jika perlu
PR Anda akan ditarik ke master oleh staf
Rincian silahkan!
1. Mendua a Repo
Catatan
Langkah ini hanya diperlukan jika Anda tidak memiliki hak push pada repo yang sedang Anda ubah. Jika Anda bekerja di repo Anda sendiri, tidak ada garpu yang diperlukan. Lewati saja langkah ini dan `` kloning`` secara langsung. Jika Anda membuat perubahan pada Sponge dan Anda ** bukan staf, langkah ini diperlukan.
Sekarang setelah Anda tahu konsep dasarnya, kita akan membahas rinciannya. Pertama Anda perlu garpu repositori Anda ingin membuat perubahan. Ini bisa dilakukan di GitHub.com, di mana Anda akan menemukan tombol `` Cabang`` di bagian atas halaman repositori. Setelah menekannya, GitHub akan melakukan beberapa pekerjaan dan menyajikan tiruan repo asli untuk Anda. Anda akan melihat bahwa kloning sekarang berada di `` Akun GitHub/Kloning Nama Repo Anda``. Baiklah, langkah pertama selesai.
Catatan
Semua cabang dari repositori asli akan bercabang juga, Anda bisa menerima tiruan dari repo bercabang.
2. Kloning Cabang ke Mesin lokal Anda
Sekarang Anda perlu membawa garpu ini ke mesin lokal Anda untuk membuat perubahan Anda. Buka Git Klien pilihan Anda (../menyiapkan/ git) dan klon
garpu Anda ke komputer lokal Anda. Klien akan meminta Anda untuk membuat folder untuk menyimpan semuanya. Langkah kedua selesai, selesai!
Catatan
Sebagian besar langkah bisa dilakukan melalui GUI pilihan Anda. Jika sudah berpengalaman dengan antarmuka baris perintah, maka Anda bisa menggunakannya juga. Setiap langkah akan menunjukkan perintah yang dibutuhkan untuk mencapai hasil yang diinginkan.
Atau Anda bisa melakukan ini melalui CLI (antarmuka baris perintah, `` CMD`` atau `` powershell`` pada windows). Perhatikan bahwa Anda perlu membuat folder semuanya semakin kloning pada diri Anda sendiri sebelum mengetikkan perintah ini:
git clone git://github.com/YourGitHubAccount/ClonedRepoName.git
3. Menciptakan Cabang Baru
Sekarang bahwa anda memiliki lokal clone dari garpu anda, saatnya untuk membuat cabang untuk bekerja pada. Cabang-cabang yang dirancang untuk dapat mengembangkan dan menguji berbagai fitur atau penambahan pada saat yang sama, tanpa menyebabkan masalah dan kesalahan karena gangguan dari penambahan. Hal ini sangat disarankan bahwa anda tidak membuat perubahan pada master cabang. Sebaliknya, buat cabang baru sendiri (dengan nama masuk akal) dan membuat perubahan di sana.
Ini menyiratkan bahwa kita perlu membuat `` cabang`` terlebih dahulu, jadi mari kita pergi! Anda bisa melakukan ini melalui klien Anda (seharusnya ada tombol `` buat cabang`` di suatu tempat), atau Anda dapat menggunakan CLI dengan git:
git checkout -b [name_of_your_new_branch]
Hal ini akan menciptakan sebuah branch dengan nama pilihan anda dan beralih ke sana. Semua perubahan yang anda buat akan di cabang ini. Jika anda perlu untuk beralih ke cabang lain ( misalnya guru), menggunakan kembali perintah ini. Langkah ketiga selesai! Pekerjaan yang baik sejauh ini! Untuk mendapatkan gambaran dari cabang-cabang anda, hanya memiliki melihat anda git client atau menggunakan:
git branch
** Sekarang saatnya untuk membuat perubahan anda **. Gunakan pengarang atau IDE pilihan Anda untuk melakukan ini.
4. Uji jika Perubahan Anda Bekerja
Untuk SpongeAPI dan implementasi yang anda miliki untuk menjalankan gradle compileJava. Lanjutkan ke langkah berikutnya jika selesai tanpa kesalahan. Jika tidak, membuat koreksi yang tepat dan mencoba lagi.
Untuk SpongeDocs Anda bisa mengirimkan PR Anda. Ini akan dibangun secara otomatis dan mengungkapkan kemungkinan kesalahan. Pilihan lainnya adalah membangun Docs secara lokal. Lihat di `Readme.md di Document <https://github.com/SpongePowered/SpongeDocs/blob/master/README.md> ` _ untuk petunjuk lebih lanjut.
5. Komit Perubahannya
Ketika anda selesai, anda perlu untuk menggabungkan mereka ke dalam satu paket (a komit) dan mendapatkan mereka ke cabang. Lagi-lagi anda git client akan membantu anda keluar. Tambahkan nama yang bermakna untuk anda yang berkomitmen dan deskripsi singkat jika diperlukan. Hal ini dapat dilakukan melalui CLI juga:
Pertama mengumpulkan semua file dan folder yang ingin dimasukkan ke dalam komit:
git add <file>
git add <folder>
Sekarang file ditambahkan ke daftar perubahan yang ingin Anda sertakan di komit, lakukan saja
git commit
Ini akan membuka jendela teks, di mana anda dapat menambahkan pesan jika anda inginkan. Silahkan lihat pada gambar di bawah ini. Anda akan melihat bahwa anda melakukan yang masih disimpan secara lokal saja dan tidak pada garpu anda di GitHub.
Catatan
Anda dapat memiliki beberapa melakukan PR. Hanya pergi ke depan dan mengubah segala sesuatu yang anda butuhkan dan melakukan perubahan. Anda dapat menggabungkan komit pada satu komit nanti.
Jadi sekarang, langkah keenam sudah selesai. Hampir sampai!
6. Sinkronkan ke GitHub
Sekarang kita perlu mendapatkan perubahan pada garpu Anda di GitHub. Semua yang Anda buat sejauh ini hanya disimpan secara lokal saat ini. Seperti biasa, Anda dapat menggunakan klien git Anda untuk melakukan ini (ada tombol di suatu tempat di GUI Anda), atau Anda dapat melakukannya melalui CLI:
git push <remote> <branch>
Dalam hal ini seharusnya:
git push origin feature/YourFeature
7. Mengusulkan Perubahan dalam PR ke Repo SpongePowered
Anda bisa masuk ke halaman garpu di GitHub.com (seharusnya ada pemberitahuan di bagian atas halaman forks untuk memandu Anda), atau Anda dapat menggunakan klien GitHub untuk membuat permintaan tarik. GitHub resmi untuk klien Win menggunakan sudut kanan atas jendela untuk ini.
Amati PR Anda jika Diperlukan
Jika kami ingin Anda membuat perubahan pada PR Anda, maka lakukan lebih banyak komitmen pada cabang yang dibuat di atas. Selanjutnya komit akan ditambahkan ke PR anda secara otomatis.
9. Anda Mendapat PR Menarik
Itu dia. Kita sudah siap! Kerja bagus!
Git Lanjutan
Squashing dengan Mendasarkan ulang
Katakanlah anda telah selesai anda penambahan repo, dan mari kita berpura-pura bahwa anda dibuat 137 melakukan sementara mendapatkan itu dilakukan. Anda melakukan sejarah pasti akan terlihat berantakan. Ini akan menjadi malu jika mereka semua dicatat ke dalam repo, bukan? Terlalu banyak sepele melakukan juga mengacaukan proyek komit sejarah. Untungnya Git memiliki alat yang bagus untuk menghindari hal ini, itu disebut rebase. Rebasing dapat mengambil 137 kecil melakukan dan mengubah mereka ke dalam satu besar melakukan. Mengagumkan, bukan? Alih-alih menciptakan kembali roda, kami akan berikan anda sebuah link untuk yang sangat singkat dan mudah dimengerti meremas tutorial:
' Git siap: Squasing dengan Mendasarkan ulang <http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html> '_
Inilah apa yang dilakukannya, dipertunjukkan dengan baik:
Pengaturan Ke Jarak Jauh
Secara alami asli repo adalah induk langsung dari garpu dan garpu anda adalah induk langsung dari lokal clone. Namun asli repo bukan induk langsung dari klon anda. Ini bukan masalah di tempat pertama, tetapi hal ini mencegah anda dari memperbarui clone anda untuk perubahan terbaru pada asli repo. Jika anda setup asli repo sebagai remote (baca: "orang tua") dari clone anda, anda akan mampu untuk meraih semua perubahan yang dibuat ke repo ini dan menerapkannya ke daerah clone. Lihat di bawah untuk melihat bagaimana meraih dan memperbarui karya.
Baik-baik saja. Langkah ini dilakukan melalui CLI sebagai yang paling Gui yang hilang ini (yang agak canggih) fungsi:
git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git
Jika anda tidak yakin apakah itu bekerja sesuai dengan yang diinginkan atau jika anda mau memeriksa remote mana yang baru saja diatur, anda bisa periksa via:
git remote -v
keluaran harus terlihat seperti:
origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch)
upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (push)
Catatan
Jika anda melihat peringatan fatal: saat ini cabang YourBranchName tidak memiliki hulu cabang., kemudian cabang mungkin tidak berada di hulu remote. Hal ini dapat terjadi jika ini adalah pertama kalinya anda mendorong komit untuk cabang baru. Untuk mendorong arus cabang dan mengatur remote sebagai hulu, gunakan git push --set-hulu asal YourBranchName.
Rebassing
Katakanlah anda membuat beberapa perubahan yang anda inginkan cabang, tetapi sementara itu, orang lain diperbarui repo. Ini berarti bahwa anda fork dan clone anda sudah ketinggalan jaman. Ini bukan masalah besar, tapi untuk menghindari masalah ketika penggabungan penambahan di kemudian hari, itu sangat disarankan untuk rebase perubahan terhadap perubahan terbaru pada asli repo. Jika anda belum mengatur remote repo namun, lakukan ini sebelum mencoba untuk rebase.
Menyukseskan rebase memerlukan beberapa langkah:
1. Mengambil perubahan pada Remote Repo
Pertama, anda perlu untuk mengambil perubahan pada repositori jauh. Ini adalah (lagi-lagi) dilakukan melalui CLI:
git fetch upstream
Ini akan menambahkan semua perubahan dari remote hulu dan menempatkan mereka ke dalam sementara hulu/master cabang.
2. Menggabungkan Perubahan Remote Lokal
Sekarang kami perlu untuk memilik lokal kami ' 'master' 'cabang:
git checkout master
Setelah itu kita akan menggabungkan perubahan yang termasuk dalam hulu/master ke lokal kami master cabang:
git merge upstream/master
Baiklah, ini adalah apa yang telah kami lakukan sejauh ini:
3. Rebase Cabang Lokal terhadap Diperbarui Master
Selanjutnya adalah rebasing cabang lokal anda bekerja dalam melawan tim lokal master. Kita perlu beralih ke kerja cabang (di sini: fitur/yourfeature) dan kemudian melakukan rebase. Hal ini dilakukan melalui:
git checkout feature/yourfeature
git rebase master
Ini akan memutar ulang cabang anda, tambahkan komitmen dari master dan lalu terapkan perubahan anda lagi. Hasil nampak seperti ini:
4. Dorong semuanya untuk Pertigaan anda
Hal terakhir yang perlu kita lakukan adalah untuk mendorong semuanya ke garpu. Jika anda sudah membuat PR, maka akan mendapatkan update secara otomatis:
git checkout master
git push -f
git checkout feature/yourfeature
git push -f
Kamu berhasil, bagus sekali! Kerja bagus dan dilakukan dengan baik dan terimakasih karena telah menerbangkan Rebase-Air!