CodeGym /Java Blog /Acak /Pertandingan yang dibuat di surga: Git dan IntelliJ IDEA
John Squirrels
Level 41
San Francisco

Pertandingan yang dibuat di surga: Git dan IntelliJ IDEA

Dipublikasikan di grup Acak
Berpegang teguh pada tradisi yang sudah mapan, saya menyambut Anda sebagai insinyur perangkat lunak senior masa depan. Pertandingan yang dibuat di surga: Git dan IntelliJ IDEA - 1Artikel hari ini adalah perpanjangan logis dari artikel saya di Git . Dalam artikel tentang Git, saya menjelaskan cara bekerja dengan Git di baris perintah. Hari ini saya akan menunjukkan kepada Anda bagaimana melakukan semuanya di IntelliJ IDEA. Di awal perjalanan saya sebagai pengembang, saya menggunakan baris perintah dan berpikir bahwa saya tidak memerlukan GUI untuk ini. Bagaimanapun, semuanya sudah jelas seperti sebelumnya... Tapi itu sampai saat saya mulai menggunakan Git di IntelliJ IDEA... Sejak awal, saya ingin mengatakan bahwa saya menjelaskan pengalaman pribadi saya. Ada beberapa cara untuk menyelesaikan masalah apa pun di IntelliJ IDEA. Jika Anda tahu cara yang lebih baik daripada yang akan saya jelaskan di artikel, tulis di komentar dan kami akan membahasnya.

Input yang diperlukan:

  1. Baca, ikuti, dan pahami artikel saya tentang Git . Ini akan membantu memastikan bahwa semuanya sudah diatur dan siap digunakan.
  2. Instal IntelliJ IDEA.
  3. Alokasikan satu jam waktu pribadi untuk mencapai penguasaan penuh.
Mari bekerja dengan proyek demo yang saya gunakan untuk artikel tentang Git. MEMPERBARUI:Pada saat publikasi, GitHub UI baru akan tersedia, dan beberapa ikon tidak akan ditampilkan di artikel. Jangan khawatir: Anda hanya perlu tidak beralih ke UI baru, atau mencarinya.

Kloning proyek secara lokal

Ada dua opsi di sini:
  1. Jika Anda sudah memiliki akun GitHub dan ingin mendorong sesuatu nanti, lebih baik fork proyek dan mengkloning salinan Anda sendiri.
  2. Kloning repositori saya dan lakukan semuanya secara lokal tanpa kemampuan untuk mendorong semuanya ke server. Bagaimanapun, ini adalah repositori saya :)
Untuk mengkloning proyek dari GitHub, Anda perlu menyalin tautan proyek dan meneruskannya ke IntelliJ IDEA:
  1. Salin alamat proyek:

    Pertandingan yang dibuat di surga: Git dan IntelliJ IDEA - 2
  2. Buka IntelliJ IDEA dan pilih "Dapatkan dari Kontrol Versi":

    Pertandingan yang dibuat di surga: Git dan IntelliJ IDEA - 3
  3. Salin dan tempel alamat proyek:

    Pertandingan yang dibuat di surga: Git dan IntelliJ IDEA - 4
  4. Anda akan diminta untuk membuat proyek IntelliJ IDEA. Menerima pesanan:

    Pertandingan yang dibuat di surga: Git dan IntelliJ IDEA - 5
  5. Karena tidak ada sistem build dan itu di luar cakupan artikel ini, kami memilih Create project from existing sources :

    Pertandingan yang dibuat di surga: Git dan IntelliJ IDEA - 6
  6. Selanjutnya Anda akan melihat layar yang indah ini: Pertandingan yang dibuat di surga: Git dan IntelliJ IDEA - 7Sekarang setelah kami mengetahui kloning, Anda dapat melihat-lihat.

Sekilas tentang IntelliJ IDEA sebagai Git UI

Perhatikan lebih dekat proyek yang dikloning: Anda sudah bisa mendapatkan banyak informasi tentang sistem kontrol versi. Pertama, kami memiliki panel Kontrol Versi di sudut kiri bawah. Di sini Anda dapat menemukan semua perubahan lokal dan mendapatkan daftar komit (analog dengan "git log"). Mari beralih ke pembahasan tentang Log . Ada visualisasi tertentu yang membantu kita memahami dengan tepat bagaimana perkembangan telah berjalan. Misalnya, Anda dapat melihat bahwa cabang baru telah dibuat dengan menambahkan tajuk ke komit txt , yang kemudian digabungkan ke dalam cabang master. Jika Anda mengklik komit, Anda dapat melihat di sudut kanan semua informasi tentang komit: semua perubahan dan metadatanya.Pertandingan yang dibuat di surga: Git dan IntelliJ IDEA - 8Selain itu, Anda dapat melihat perubahan yang sebenarnya. Kami juga melihat bahwa konflik diselesaikan di sana. IDEA juga menyajikan ini dengan sangat baik. Jika Anda mengklik dua kali pada file yang diubah selama komit ini, kita akan melihat bagaimana konflik diselesaikan: Pertandingan yang dibuat di surga: Git dan IntelliJ IDEA - 9Perhatikan bahwa di kiri dan kanan kita memiliki dua versi dari file yang sama yang perlu digabungkan menjadi satu. Dan di tengah, kami memiliki hasil gabungan akhir. Ketika sebuah proyek memiliki banyak cabang, komit, dan pengguna, Anda perlu mencari secara terpisah berdasarkan cabang, pengguna, dan tanggal: Pertandingan yang dibuat di surga: Git dan IntelliJ IDEA - 10Hal terakhir yang ingin saya jelaskan sebelum kita mulai adalah bagaimana memahami di cabang mana kita berada. Saya akan memberi Anda sebentar untuk mencari tahu... Apakah Anda menemukannya? Menyerah? :D Di pojok kanan bawah, ada tombol berlabel Git: master. Apa pun yang mengikuti "Git:" adalah cabang saat ini. Jika Anda mengklik tombol tersebut, Anda dapat melakukan banyak hal berguna: beralih ke cabang lain, membuat yang baru, mengganti nama yang sudah ada, dan seterusnya.Pertandingan yang dibuat di surga: Git dan IntelliJ IDEA - 11

Bekerja dengan repositori

Tombol pintas yang berguna

Untuk pekerjaan selanjutnya, Anda perlu mengingat beberapa hotkey yang sangat berguna:
  1. CTRL+T — Dapatkan perubahan terbaru dari repositori jarak jauh (git pull).
  2. CTRL+K — Buat komit / lihat semua perubahan saat ini. Ini termasuk file yang tidak terlacak dan yang dimodifikasi (lihat artikel saya tentang git, yang menjelaskan ini) (git commit).
  3. CTRL+SHIFT+K — Ini adalah perintah untuk mendorong perubahan ke repositori jarak jauh. Semua komit yang dibuat secara lokal dan belum ada di repositori jarak jauh akan didorong (git push).
  4. ALT+CTRL+Z — Kembalikan perubahan pada file tertentu ke status komit terakhir yang dibuat di repositori lokal. Jika Anda memilih seluruh proyek di pojok kiri atas, Anda dapat mengembalikan perubahan di semua file.
Pertandingan yang dibuat di surga: Git dan IntelliJ IDEA - 12

Apa yang kita inginkan?

Untuk menyelesaikan pekerjaan, kita perlu menguasai skenario dasar yang digunakan di mana-mana. Tujuannya adalah untuk mengimplementasikan fungsionalitas baru di cabang terpisah dan kemudian mendorongnya ke repositori jarak jauh (maka Anda juga perlu membuat permintaan tarik ke cabang utama, tetapi itu di luar cakupan artikel ini). Apa yang diperlukan untuk melakukan ini?
  1. Dapatkan semua perubahan saat ini di cabang utama (misalnya, "master").

  2. Dari cabang utama ini, buat cabang terpisah untuk pekerjaan Anda.

  3. Menerapkan fungsi baru.

  4. Pergi ke cabang utama dan periksa apakah ada perubahan baru saat kami bekerja. Jika tidak, maka semuanya baik-baik saja. Tetapi jika ada perubahan, maka kami melakukan hal berikut: pergi ke cabang kerja dan mengubah perubahan dari cabang utama menjadi milik kami. Jika semuanya berjalan dengan baik, maka bagus. Tapi sangat mungkin akan ada konflik. Seperti yang terjadi, mereka dapat diselesaikan terlebih dahulu, tanpa membuang waktu di repositori jarak jauh.

    Apakah Anda bertanya-tanya mengapa Anda harus melakukan ini? Ini sopan santun dan mencegah terjadinya konflik setelah mendorong cabang Anda ke repositori lokal (tentu saja ada kemungkinan konflik masih akan terjadi, tetapi menjadi jauh lebih kecil).

  5. Dorong perubahan Anda ke repositori jarak jauh.
Apa yang terjadi selanjutnya tergantung pada tugas dan imajinasi Anda.

Dapatkan perubahan dari server jarak jauh?

Saya menambahkan deskripsi ke README dengan komit baru dan ingin mendapatkan perubahan ini. Jika perubahan dilakukan baik di repositori lokal maupun di repositori jarak jauh, maka kita diundang untuk memilih antara penggabungan dan rebase. Kami memilih untuk bergabung. Masukkan CTRL+T : Pertandingan yang dibuat di surga: Git dan IntelliJ IDEA - 13Anda sekarang dapat melihat bagaimana README telah berubah, yaitu perubahan dari repositori jarak jauh ditarik masuk, dan di pojok kanan bawah Anda dapat melihat semua detail perubahan yang berasal dari server.Pertandingan yang dibuat di surga: Git dan IntelliJ IDEA - 14

Buat cabang baru berdasarkan master

Semuanya sederhana di sini.
  1. Pergi ke pojok kanan bawah dan klik Git: master . Pilih + Cabang Baru .

    Pertandingan yang dibuat di surga: Git dan IntelliJ IDEA - 15
  2. Biarkan kotak centang Checkout branch dipilih dan masukkan nama cabang baru. Bagi saya, itu akan menjadi readme-improver .

    Pertandingan yang dibuat di surga: Git dan IntelliJ IDEA - 16

    Git: master kemudian akan berubah menjadi Git: readme-improver .

Mari kita simulasikan pekerjaan paralel

Agar konflik muncul, seseorang harus membuatnya :D Saya akan mengedit README dengan komit baru melalui browser, sehingga mensimulasikan pekerjaan paralel. Seolah-olah seseorang membuat perubahan pada file yang sama saat saya sedang mengerjakannya. Hasilnya akan menjadi konflik. Saya akan menghapus kata "fully" dari baris 10.

Terapkan fungsionalitas kami

Tugas kita adalah mengubah README dan menambahkan deskripsi ke artikel baru. Artinya, pekerjaan di Git dilakukan melalui IntelliJ IDEA. Tambahkan ini: Pertandingan yang dibuat di surga: Git dan IntelliJ IDEA - 17Perubahan telah selesai. Sekarang kita dapat membuat komit. Tekan CTRL+K , yang memberi kita: Pertandingan yang dibuat di surga: Git dan IntelliJ IDEA - 18Sebelum membuat komit, kita perlu melihat dari dekat apa yang ditawarkan jendela ini. Saya menambahkan panah merah untuk menunjukkan ke mana harus mencari. Ada banyak hal menarik di sini. Di bagian Pesan Komit , kami menulis teks yang terkait dengan komit. Kemudian untuk membuatnya, kita perlu mengklik Commit. Saya masih belum menemukan cara melakukan ini dengan hotkey. Jika seseorang mengetahui caranya, tolong tulis saya - itu akan membuat saya sangat bahagia. Kami menulis bahwa README telah berubah dan membuat komit. Peringatan muncul di sudut kiri bawah dengan nama komit:Pertandingan yang dibuat di surga: Git dan IntelliJ IDEA - 19

Periksa apakah cabang utama telah berubah

Kami menyelesaikan tugas kami. Berhasil. Kami menulis tes. Semuanya baik-baik saja. Namun sebelum mendorong ke server, kami masih perlu memeriksa apakah ada perubahan di cabang utama untuk sementara. Bagaimana itu bisa terjadi? Cukup mudah: seseorang menerima tugas setelah Anda, dan seseorang menyelesaikannya lebih cepat daripada Anda menyelesaikan tugas Anda. Jadi kita harus pergi ke cabang master. Untuk melakukan ini, kita perlu melakukan apa yang ditunjukkan di pojok kanan bawah pada tangkapan layar di bawah ini: Pertandingan yang dibuat di surga: Git dan IntelliJ IDEA - 20Di ​​cabang master, tekan CTRL+T untuk mendapatkan perubahan terbaru dari server jarak jauh. Melihat apa perubahannya, Anda dapat dengan mudah melihat apa yang terjadi:Pertandingan yang dibuat di surga: Git dan IntelliJ IDEA - 21Kata "fully" telah dihapus. Mungkin seseorang dari pemasaran memutuskan bahwa itu tidak boleh ditulis seperti itu dan memberi tugas kepada pengembang untuk memperbaruinya. Kami sekarang memiliki salinan lokal dari versi terbaru dari cabang master. Kembali ke readme-improver . Sekarang kita perlu mengubah perubahan dari cabang master menjadi milik kita. Kami melakukan ini: Pertandingan yang dibuat di surga: Git dan IntelliJ IDEA - 22Jika Anda melakukan semuanya dengan benar dan mengikuti saya, hasilnya akan menunjukkan konflik dalam file README: Pertandingan yang dibuat di surga: Git dan IntelliJ IDEA - 23Di sini kami juga memiliki banyak informasi untuk dipahami dan diserap. Ditampilkan di sini adalah daftar file (dalam kasus kami, satu file) yang memiliki konflik. Kita dapat memilih dari tiga opsi:
  1. terima milik Anda — hanya terima perubahan dari readme-improver.
  2. terima milik mereka — terima hanya perubahan dari master.
  3. gabung — pilih sendiri apa yang ingin Anda simpan dan apa yang akan dibuang.
Tidak jelas apa yang berubah. Jika ada perubahan di cabang master, pasti dibutuhkan di sana, jadi kami tidak bisa begitu saja menerima perubahan kami. Oleh karena itu, kami memilih gabungan : Pertandingan yang dibuat di surga: Git dan IntelliJ IDEA - 24Di sini kita dapat melihat bahwa ada tiga bagian:
  1. Ini adalah perubahan dari readme-improver.
  2. Hasil gabungan. Untuk saat ini, itulah yang ada sebelum perubahan.
  3. Perubahan dari cabang master.
Kita perlu menghasilkan hasil gabungan yang akan memuaskan semua orang. Meninjau apa yang diubah SEBELUM perubahan kami, kami menyadari bahwa mereka hanya menghapus kata "fully". Oke tidak masalah! Itu artinya kita juga akan menghapusnya di hasil gabungan dan kemudian menambahkan perubahan kita. Setelah kami memperbaiki hasil gabungan, kami dapat mengklik Terapkan . Kemudian pemberitahuan akan muncul, memberi tahu kami bahwa rebase berhasil: Pertandingan yang dibuat di surga: Git dan IntelliJ IDEA - 25Di sana! Kami menyelesaikan konflik pertama kami melalui IntelliJ IDEA :D

Dorong perubahan ke server jarak jauh

Langkah selanjutnya adalah mendorong perubahan ke server jarak jauh dan membuat permintaan tarik. Untuk melakukan ini, cukup tekan CTRL+SHIFT+K . Maka kita mendapatkan: Pertandingan yang dibuat di surga: Git dan IntelliJ IDEA - 26Di sebelah kiri, akan ada daftar komit yang belum didorong ke repositori jarak jauh. Di sebelah kanan akan ada semua file yang telah diubah. Dan itu saja! Tekan Push dan Anda akan merasakan kebahagiaan :) Jika push berhasil, Anda akan melihat notifikasi seperti ini di pojok kanan bawah:Pertandingan yang dibuat di surga: Git dan IntelliJ IDEA - 27

Bagian bonus

Awalnya, saya tidak ingin menambahkan pembuatan pull request ke artikel ini, tetapi tidak lengkap tanpanya. Jadi, mari kita pergi ke repositori GitHub (milik Anda, tentu saja :)) dan kita melihat bahwa GitHub sudah mengetahui apa yang kita inginkan: Pertandingan yang dibuat di surga: Git dan IntelliJ IDEA - 28Klik Bandingkan & tarik permintaan . Kemudian klik Buat permintaan tarik . Karena kita telah menyelesaikan konflik sebelumnya, sekarang saat membuat pull request, kita dapat langsung menggabungkannya: Pertandingan yang dibuat di surga: Git dan IntelliJ IDEA - 29Dan hanya itu yang ingin saya katakan kali ini. Tentu saja, saya hanya membuka pintu sedikit untuk Anda dan menunjukkan kepada Anda sebagian kecil. Anda akan belajar tentang sisanya saat Anda membutuhkannya. Saya memiliki kebiasaan mengundang Anda untuk mengikuti saya di GitHub, tempat saya memposting proyek saya yang melibatkan berbagai teknologi yang saya gunakan di tempat kerja. Saya baru-baru ini membuat pencapaian pribadi: salah satu proyek saya diberi bintang oleh lebih dari seratus pengembang. Ada perasaan gembira yang luar biasa ketika Anda tahu bahwa apa yang telah Anda lakukan dimanfaatkan oleh orang lain. Dan menggunakannya untuk kebaikan.

Tautan yang bermanfaat

  1. CodeGym: Memulai dengan Git: panduan komprehensif untuk pemula
  2. GitHub: Proyek demo untuk latihan
  3. JetBrains: Siapkan Repositori Git
  4. GitHub: Akun saya
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION