Catatan pengantar yang diperlukan:
- Baca, ulangi dan pahami artikel tentang git . Ini akan membantu memastikan bahwa semuanya sudah diatur dan siap digunakan.
- Instal Intellij IDEA.
- Sisihkan satu jam waktu pribadi untuk menyerap sepenuhnya.
Kloning proyek secara lokal
Ada dua pilihan di sini.- Jika Anda sudah memiliki akun Github dan ingin mendorong sesuatu nanti, lebih baik Anda membagi proyek tersebut ke diri Anda sendiri dan mengkloning salinan Anda. Cara membuat garpu - Saya jelaskan di artikel ini di bab contoh alur kerja forking .
- Kloning dari repositori saya dan lakukan semuanya secara lokal tanpa kemampuan untuk memasukkan semuanya ke server. Bagaimanapun, ini akan menjadi gudang saya))
-
Salin alamat proyek:
-
Buka Intellij IDEA dan pilih Dapatkan dari Kontrol Versi:
-
Salin dan tempel alamat ke proyek:
-
Anda akan diminta untuk membuat proyek Intellij IDEA. Kami menerima tawaran:
-
Karena tidak ada sistem pembangunan, dan ini bukan cakupan artikel, pilih Buat proyek dari sumber yang ada :
-
Selanjutnya akan ada lukisan cat minyak berikut: Kita sudah bereskan kloning, sekarang kita bisa melihat-lihat.
Pertama lihat Intellij IDEA sebagai Git UI
Perhatikan lagi proyek kloning ini: di sana Anda bisa mendapatkan banyak informasi tentang sistem kontrol versi. Yang pertama adalah panel Kontrol Versi di pojok kiri bawah. Di dalamnya Anda dapat menemukan semua perubahan lokal dan mendapatkan daftar komitmen (analog dengan git log). Mari kita beralih ke kuliah Log . Ada komponen visual tertentu yang membantu untuk memahami dengan tepat bagaimana proses pengembangan berjalan. Misalnya, Anda dapat melihat bahwa cabang baru dibuat dengan komit yang menambahkan header ke txt , yang kemudian digabungkan ke dalam cabang master. Jika Anda mengklik komit, di sudut kanan Anda dapat melihat semua informasi tentang komit: semua perubahan dan metadatanya. Selain itu, Anda bisa melihat perubahan apa saja yang dilakukan. Apalagi konflik terselesaikan di sana. IDEA juga menunjukkan hal ini dengan sempurna. Jika Anda mengklik dua kali pada file yang diubah selama penerapan ini, kita akan melihat bagaimana konflik diselesaikan: Terlihat bahwa di kanan dan kiri ada dua versi dari file yang sama yang perlu digabungkan menjadi satu. Dan di tengahnya adalah hasil akhir. Ketika sebuah proyek memiliki banyak cabang, komit, dan pengguna yang bekerja di proyek tersebut, Anda perlu mencari secara terpisah berdasarkan cabang (branch), pengguna (user) dan tanggal (tanggal): Dan hal terakhir yang ingin saya jelaskan sebelum memulai adalah bagaimana memahaminya di cabang mana kita berada. Saya akan memberi Anda waktu sebentar untuk mencari... apakah Anda menemukannya? Apakah kamu menyerah? :D Di pojok kanan bawah terdapat tombol Git: master , dimana setelah Git: menunjukkan di cabang mana proyek tersebut berada. Jika Anda mengklik tombol tersebut, Anda dapat melakukan banyak hal berguna: berpindah ke cabang lain, membuat cabang baru, mengganti nama cabang yang sudah ada, dan seterusnya.Bekerja dengan repositori
Tombol pintas yang berguna
Untuk terus bekerja, Anda perlu mengingat beberapa tombol pintas yang sangat berguna:- ctrl + t - dapatkan perubahan terbaru dari repositori jarak jauh (git pull).
- ctrl + k - komit/lihat semua perubahan yang tersedia saat ini. Ini termasuk file yang tidak terlacak dan dimodifikasi (lihat artikel saya tentang git, ini dijelaskan di sana) (git commit).
- ctrl + shift + k adalah perintah untuk mendorong perubahan ke repositori jarak jauh. Semua komit yang dibuat secara lokal dan belum ada pada komit jarak jauh akan ditawarkan untuk push (git push).
- alt + ctrl + z - mengembalikan perubahan pada file tertentu ke status komit yang terakhir dibuat di repositori lokal. Jika Anda memilih seluruh proyek di sudut kiri atas, Anda dapat mengembalikan perubahan pada semua file.
Apa yang kita inginkan?
Agar bisa bekerja, kita perlu menguasai skrip dasar, yang digunakan di mana-mana. Tugasnya adalah mengimplementasikan fungsionalitas baru di cabang terpisah dan mendorongnya ke repositori jarak jauh (maka Anda perlu membuat permintaan tarik lain untuk cabang utama, tetapi ini di luar cakupan artikel kami). Apa yang harus saya lakukan?-
Dapatkan semua perubahan yang ada di cabang utama (master, misalnya).
-
Berdasarkan yang utama ini, buatlah yang terpisah untuk pekerjaan Anda.
-
Menerapkan fungsionalitas baru.
-
Pergi ke cabang utama dan periksa apakah ada perubahan baru saat Anda bekerja. Jika tidak, maka semuanya baik-baik saja, dan jika ya, maka kita melakukan hal berikut: kita pergi ke cabang yang berfungsi dan melakukan rebase perubahan dari cabang utama ke cabang kita. Jika semuanya berjalan dengan baik, maka bagus. Tapi mungkin saja ada konflik. Dan masalah tersebut dapat diselesaikan terlebih dahulu tanpa membuang waktu pada repositori jarak jauh.
Tampaknya mengapa melakukan ini? Ini adalah aturan yang baik, yang mencegah timbulnya konflik setelah mendorong cabang Anda ke repositori lokal (tentu saja, ada kemungkinan konflik tersebut akan tetap ada, tetapi menjadi jauh lebih kecil).
- Dorong perubahan Anda ke repositori jarak jauh.
Menerima perubahan dari server jauh?
Saya menambahkan deskripsi ke README dengan komit baru dan ingin menerima perubahan ini. Pilihan ditawarkan antara penggabungan dan rebase jika perubahan dilakukan pada repositori lokal dan jarak jauh. Pilih gabungan. Masukkan ctrl + t : Hasilnya, Anda dapat melihat bagaimana README berubah, mis. perubahan dari repositori jarak jauh telah ditarik, dan di sudut kanan bawah Anda dapat melihat semua detail perubahan yang datang dari server.Buat cabang baru berdasarkan master
Semuanya sederhana di sini.-
Pergi ke pojok kanan bawah dan klik Git: master , pilih + New Branch .
Biarkan kotak centang Cabang Checkout dan tulis nama cabang baru. Bagi saya itu akan menjadi readme-improver .
Setelah ini, Git: master akan berubah menjadi Git: readme-improver .
Mensimulasikan pekerjaan paralel
Agar konflik muncul, seseorang harus membuatnya :D Saya akan mengedit README dengan komit baru melalui browser dan dengan demikian mensimulasikan pekerjaan paralel. Mereka mengatakan seseorang, selama saya bekerja, membuat perubahan pada file yang sama dengan saya, yang akan menyebabkan konflik. Saya akan menghapus kata “seluruhnya” dari baris 10.Terapkan fungsionalitas Anda
Tugasnya adalah mengubah README dan menambahkan deskripsi ke artikel baru, yaitu pekerjaan di git dilakukan melalui Intellij IDEA. Tambahkan ini: Perubahan sudah selesai, sekarang Anda dapat membuat komit. Tekan tombol pintas ctrl + k , kita mendapatkan: Sebelum membuat komit, Anda perlu hati-hati melihat apa yang ditawarkan di jendela ini. Saya secara khusus menambahkan panah untuk menunjukkan di mana mencarinya. Ada banyak hal menarik di sana. Di bagian Pesan Komit kami menulis teks komit, dan untuk membuatnya, Anda perlu mengklik tombol Komit . Saya masih belum menemukan cara melakukan ini dengan hotkey, jadi jika seseorang menemukannya, tulis, saya akan sangat senang. Kami menulis bahwa README telah berubah dan membuat komit. Akibatnya, sebuah peringatan akan muncul di sudut kiri bawah dengan nama komit:Periksa apakah cabang master telah berubah
Kami menyelesaikan tugas, berhasil, kami menulis tes, semuanya baik-baik saja. Namun sebelum melakukan push ke server, Anda perlu memeriksa apakah ada perubahan di cabang utama selama ini. Bagaimana ini bisa terjadi? Sederhana saja: seseorang diberi tugas setelah Anda, dan orang ini menyelesaikannya lebih cepat dari Anda. Oleh karena itu, kami pindah ke cabang master. Untuk melakukan ini, Anda perlu melakukan di sudut kanan bawah apa yang ditunjukkan pada gambar di bawah ini: Di cabang master, tekan ctrl + t untuk mendapatkan perubahan terbaru dari server jauh. Jika Anda melihat perubahan apa yang dilakukan, Anda dapat dengan mudah melihat apa yang terjadi: Seperti yang Anda lihat, kata “sepenuhnya” telah dihapus. Mungkin seseorang dari bagian pemasaran yang memutuskan bahwa itu tidak dapat ditulis seperti itu dan memberikan tugas kepada pengembang untuk memperbaruinya. Kami sekarang memiliki versi terbaru dari cabang master secara lokal. Mari kembali ke readme-improver . Sekarang kita perlu melakukan rebase perubahan dari cabang master ke cabang kita. Kami melakukannya: Jika Anda mengikuti semuanya dengan benar dengan saya, hasilnya akan menjadi konflik di file README: Ada juga banyak informasi di sini yang perlu dipahami dan diserap. Ini menunjukkan daftar (dalam kasus kami satu elemen) file yang memiliki konflik. Kita dapat memilih tiga opsi:- terima milikmu - hanya menerima perubahan dari readme-improver.
- terima milik mereka - hanya menerima perubahan dari master.
- gabung - pilih sendiri apa yang akan disimpan dan apa yang harus dihapus.
- Ini adalah perubahan dari readme-improver.
- Hasil. Untuk saat ini sama seperti sebelum adanya perubahan.
- Perubahan dari cabang master.
Dorong perubahan ke server jauh
Langkah selanjutnya adalah mendorong perubahan ke server jarak jauh dan membuat permintaan tarik. Untuk melakukan ini, cukup tekan ctrl + shift + k , setelah itu kita mendapatkan: Di sebelah kiri akan ada daftar komit yang belum dimasukkan ke repositori jarak jauh, dan di sebelah kanan akan ada semua file yang telah di- berubah. Itu saja: klik Push , dan Anda akan senang :) Jika push berhasil, akan ada notifikasi seperti ini di pojok kanan bawah:Bagian bonusnya
Awalnya saya tidak ingin menambahkan pembuatan pull request ke artikel, tetapi ternyata tidak terlalu lengkap karena hal ini. Oleh karena itu, kami pergi ke repositori GitHub (jika itu milik Anda, tentu saja)))) dan melihat bahwa GitHub sudah mengetahui apa yang ditawarkan kepada kami: Klik Bandingkan & permintaan tarik , lalu klik Buat permintaan tarik . Karena konflik telah kami selesaikan terlebih dahulu, sekarang saat membuat permintaan tarik, Anda dapat langsung menggabungkannya: Hanya itu yang ingin saya sampaikan kepada Anda kali ini. Tentu saja, saya baru saja membuka pintu dan menunjukkan sebagian kecilnya. Anda akan menemukan sisanya sendiri sesuai kebutuhan. Seperti biasa, saya mengundang Anda untuk berlangganan akun GitHub saya , tempat saya memposting proyek berdasarkan berbagai teknologi yang saya gunakan di tempat kerja. Saya baru-baru ini mendapatkan pencapaian pribadi - proyek saya telah dinilai oleh lebih dari seratus pengembang. Sungguh perasaan gembira yang luar biasa ketika seseorang menggunakan apa yang Anda buat. Dan menggunakannya untuk kebaikan.tautan yang bermanfaat
- JavaRush: Memulai Git: panduan terperinci untuk pemula
- GitHub: Proyek demo untuk dikerjakan
- JavaRush: Menganalisis strategi percabangan di Git
- JetBrains: Siapkan Repositori Git
- Habr: Git rebase
- GitHub: Akun Saya
GO TO FULL VERSION