JavaRush /Java Blog /Random-ID /Mari hubungkan Git dengan Intellij IDEA

Mari hubungkan Git dengan Intellij IDEA

Dipublikasikan di grup Random-ID
Sesuai tradisi, saya menyambut Anda, Insinyur Perangkat Lunak Senior masa depan. Mari hubungkan Git dengan Intellij IDEA - 1Hari ini kita akan berbicara tentang kelanjutan logis dari artikel saya tentang Git . Saya juga merekomendasikan membaca materi tentang strategi percabangan yang saya terbitkan sebelumnya. Dalam artikel tentang Git, saya menjelaskan cara bekerja dengannya di baris perintah, dan hari ini saya akan menunjukkan cara melakukan semua ini di Intellij IDEA. Pada awal perjalanan saya sebagai pengembang, saya menggunakan baris perintah dan berpikir bahwa saya tidak perlu menggunakan UI untuk hal ini. Bagaimanapun, semuanya jelas dan begitu... Tapi itulah saat saya mulai menggunakan Git di Intellij IDEA... Saya ingin segera mengatakan bahwa saya akan menjelaskan pengalaman pribadi saya. Ada beberapa opsi untuk menyelesaikan masalah yang sama menggunakan Intellij IDEA, dan jika Anda tahu cara terbaik untuk melakukan apa yang saya jelaskan di artikel, tulis di komentar dan kami akan berdiskusi.

Catatan pengantar yang diperlukan:

  1. Baca, ulangi dan pahami artikel tentang git . Ini akan membantu memastikan bahwa semuanya sudah diatur dan siap digunakan.
  2. Instal Intellij IDEA.
  3. Sisihkan satu jam waktu pribadi untuk menyerap sepenuhnya.
Untuk bekerja, mari kita ambil proyek demo yang saya gunakan untuk artikel tentang git. MEMPERBARUI:Pada saat publikasi, UI Github baru sudah 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 pilihan di sini.
  1. 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 .
  2. Kloning dari repositori saya dan lakukan semuanya secara lokal tanpa kemampuan untuk memasukkan semuanya ke server. Bagaimanapun, ini akan menjadi gudang saya))
Untuk mengkloning proyek dari Github, Anda perlu menyalin tautan ke proyek tersebut dan meneruskannya ke IntelliJ IDEA:
  1. Salin alamat proyek:

    Mari hubungkan Git dengan Intellij IDEA - 2
  2. Buka Intellij IDEA dan pilih Dapatkan dari Kontrol Versi:

    Mari hubungkan Git dengan Intellij IDEA - 3
  3. Salin dan tempel alamat ke proyek:

    Mari kita hubungkan Git dengan Intellij IDEA - 4
  4. Anda akan diminta untuk membuat proyek Intellij IDEA. Kami menerima tawaran:

    Mari kita hubungkan Git dengan Intellij IDEA - 5
  5. Karena tidak ada sistem pembangunan, dan ini bukan cakupan artikel, pilih Buat proyek dari sumber yang ada :

    Mari kita hubungkan Git dengan Intellij IDEA - 6
  6. Selanjutnya akan ada lukisan cat minyak berikut: Mari kita hubungkan Git dengan Intellij IDEA - 7Kita 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. Mari kita hubungkan Git dengan Intellij IDEA - 8Selain 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: Mari kita hubungkan Git dengan Intellij IDEA - 9Terlihat 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): Mari kita hubungkan Git dengan Intellij IDEA - 10Dan 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. Mari kita hubungkan Git dengan Intellij IDEA - 11

Bekerja dengan repositori

Tombol pintas yang berguna

Untuk terus bekerja, Anda perlu mengingat beberapa tombol pintas yang sangat berguna:
  1. ctrl + t - dapatkan perubahan terbaru dari repositori jarak jauh (git pull).
  2. 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).
  3. 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).
  4. 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.
Mari kita hubungkan Git dengan Intellij IDEA - 12

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?
  1. Dapatkan semua perubahan yang ada di cabang utama (master, misalnya).

  2. Berdasarkan yang utama ini, buatlah yang terpisah untuk pekerjaan Anda.

  3. Menerapkan fungsionalitas baru.

  4. 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).

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

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 : Mari kita hubungkan Git dengan Intellij IDEA - 13Hasilnya, 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. Mari kita hubungkan Git dengan Intellij IDEA - 14

Buat cabang baru berdasarkan master

Semuanya sederhana di sini.
  1. Pergi ke pojok kanan bawah dan klik Git: master , pilih + New Branch .

    Mari kita hubungkan Git dengan Intellij IDEA - 15
  2. Biarkan kotak centang Cabang Checkout dan tulis nama cabang baru. Bagi saya itu akan menjadi readme-improver .

    Mari kita hubungkan Git dengan Intellij IDEA - 16

    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: Mari kita hubungkan Git dengan Intellij IDEA - 17Perubahan sudah selesai, sekarang Anda dapat membuat komit. Tekan tombol pintas ctrl + k , kita mendapatkan: Mari kita hubungkan Git dengan Intellij IDEA - 18Sebelum 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: Mari hubungkan Git dengan Intellij IDEA - 19

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: Mari hubungkan Git dengan Intellij IDEA - 20Di ​​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: Mari kita hubungkan Git dengan Intellij IDEA - 21Seperti 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: Mari hubungkan Git dengan Intellij IDEA - 22Jika Anda mengikuti semuanya dengan benar dengan saya, hasilnya akan menjadi konflik di file README: Mari hubungkan Git dengan Intellij IDEA - 23Ada 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:
  1. terima milikmu - hanya menerima perubahan dari readme-improver.
  2. terima milik mereka - hanya menerima perubahan dari master.
  3. gabung - pilih sendiri apa yang akan disimpan dan apa yang harus dihapus.
Tidak jelas apa yang berubah di sana, dan jika perubahan itu ada di master, maka itu diperlukan di sana, dan kita tidak bisa menerima perubahan kita begitu saja, jadi kita pilih merge : Mari hubungkan Git dengan Intellij IDEA - 24Di sini Anda dapat melihat ada tiga bagian:
  1. Ini adalah perubahan dari readme-improver.
  2. Hasil. Untuk saat ini sama seperti sebelum adanya perubahan.
  3. Perubahan dari cabang master.
Kita perlu mengumpulkan hasilnya sedemikian rupa sehingga dapat memuaskan semua orang. Oleh karena itu, kami mempelajari apa yang mereka lakukan SEBELUM kami, dan menyadari bahwa mereka hanya menghilangkan kata “sepenuhnya”. Baiklah, tidak masalah. Ini berarti kami akan menghapusnya dan menambahkan perubahan kami. Segera setelah kami memperbaiki hasilnya, Anda dapat mengklik Terapkan . Setelah itu akan muncul notifikasi bahwa rebase berhasil: Mari kita hubungkan Git dengan Intellij IDEA - 25Beginilah cara kami menyelesaikan konflik pertama kami melalui Intellij IDEA :D

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: Mari hubungkan Git dengan Intellij IDEA - 26Di 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: Mari kita hubungkan Git dengan Intellij IDEA - 27

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: Mari kita hubungkan Git dengan Intellij IDEA - 28Klik Bandingkan & permintaan tarik , lalu klik Buat permintaan tarik . Karena konflik telah kami selesaikan terlebih dahulu, sekarang saat membuat permintaan tarik, Anda dapat langsung menggabungkannya: Mari kita hubungkan Git dengan Intellij IDEA - 29Hanya 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

  1. JavaRush: Memulai Git: panduan terperinci untuk pemula
  2. GitHub: Proyek demo untuk dikerjakan
  3. JavaRush: Menganalisis strategi percabangan di Git
  4. JetBrains: Siapkan Repositori Git
  5. Habr: Git rebase
  6. GitHub: Akun Saya
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION