CodeGym /Blog Java /rawak /Perlawanan yang dibuat di syurga: Git dan IntelliJ IDEA
John Squirrels
Tahap
San Francisco

Perlawanan yang dibuat di syurga: Git dan IntelliJ IDEA

Diterbitkan dalam kumpulan
Berpegang kepada tradisi yang telah ditetapkan, saya menyambut anda sebagai jurutera perisian kanan masa depan. Perlawanan yang dibuat di syurga: Git dan IntelliJ IDEA - 1Artikel hari ini adalah lanjutan logik artikel saya di Git . Dalam artikel tentang Git, saya menerangkan cara bekerja dengan Git pada baris arahan. Hari ini saya akan menunjukkan kepada anda cara melakukan semuanya dalam IntelliJ IDEA. Pada permulaan perjalanan saya sebagai pembangun, saya menggunakan baris arahan dan berfikir bahawa saya tidak memerlukan GUI untuk ini. Lagipun, segala-galanya adalah jelas kerana ia... Tetapi itu adalah tepat sehingga saat saya mula menggunakan Git dalam IntelliJ IDEA... Dari awal, saya ingin mengatakan bahawa saya menerangkan pengalaman peribadi saya. Terdapat beberapa cara untuk menyelesaikan sebarang masalah dalam IntelliJ IDEA. Jika anda tahu cara yang lebih baik daripada apa yang saya akan terangkan dalam artikel, tulis dalam komen dan kami akan membincangkannya.

Input yang diperlukan:

  1. Baca, ikuti dan fahami artikel saya tentang Git . Ini akan membantu memastikan segala-galanya disediakan dan sedia untuk digunakan.
  2. Pasang IntelliJ IDEA.
  3. Peruntukkan satu jam masa peribadi untuk mencapai penguasaan sepenuhnya.
Mari kita bekerjasama dengan projek demo yang saya gunakan untuk artikel tentang Git. KEMASKINI:Pada masa penerbitan, UI GitHub baharu akan tersedia dan beberapa ikon tidak akan berada di tempat ia ditunjukkan dalam artikel. Jangan risau: anda hanya perlu sama ada tidak bertukar kepada UI baharu atau mencarinya.

Klonkan projek secara tempatan

Terdapat dua pilihan di sini:
  1. Jika anda sudah mempunyai akaun GitHub dan ingin meneruskan sesuatu kemudian, lebih baik anda membatalkan projek itu dan mengklon salinan anda sendiri.
  2. Klon repositori saya dan lakukan segala-galanya secara tempatan tanpa keupayaan untuk menolak semuanya ke pelayan. Lagipun, ini adalah repositori saya :)
Untuk mengklon projek daripada GitHub, anda perlu menyalin pautan projek dan menyerahkannya kepada IntelliJ IDEA:
  1. Salin alamat projek:

    Perlawanan yang dibuat di syurga: Git dan IntelliJ IDEA - 2
  2. Buka IntelliJ IDEA dan pilih "Dapatkan daripada Kawalan Versi":

    Perlawanan yang dibuat di syurga: Git dan IntelliJ IDEA - 3
  3. Salin dan tampal alamat projek:

    Perlawanan yang dibuat di syurga: Git dan IntelliJ IDEA - 4
  4. Anda akan digesa untuk mencipta projek IntelliJ IDEA. Terima tawaran:

    Perlawanan yang dibuat di syurga: Git dan IntelliJ IDEA - 5
  5. Memandangkan tiada sistem binaan dan itu di luar skop artikel ini, kami memilih Cipta projek daripada sumber sedia ada :

    Perlawanan yang dibuat di syurga: Git dan IntelliJ IDEA - 6
  6. Seterusnya anda akan melihat skrin yang cantik ini: Perlawanan yang dibuat di syurga: Git dan IntelliJ IDEA - 7Sekarang setelah kami mengetahui pengklonan, anda boleh melihat sekeliling.

Pandangan pertama pada IntelliJ IDEA sebagai UI Git

Lihat lebih dekat projek klon: anda sudah boleh mendapatkan banyak maklumat tentang sistem kawalan versi. Pertama, kami mempunyai anak tetingkap Kawalan Versi di sudut kiri bawah. Di sini anda boleh menemui semua perubahan setempat dan mendapatkan senarai komit (bersamaan dengan "git log"). Mari kita beralih kepada perbincangan Log . Terdapat visualisasi tertentu yang membantu kita memahami dengan tepat bagaimana pembangunan telah berjalan. Sebagai contoh, anda boleh melihat bahawa cawangan baharu telah dibuat dengan pengepala tambahan kepada komit txt , yang kemudiannya digabungkan ke dalam cawangan induk. Jika anda mengklik pada komit, anda boleh melihat di penjuru kanan semua maklumat tentang komit: semua perubahan dan metadatanya.Perlawanan yang dibuat di syurga: Git dan IntelliJ IDEA - 8Selain itu, anda boleh melihat perubahan sebenar. Kami juga melihat bahawa konflik telah diselesaikan di sana. IDEA juga membentangkan ini dengan baik. Jika anda mengklik dua kali pada fail yang telah ditukar semasa komit ini, kami akan melihat bagaimana konflik diselesaikan: Perlawanan yang dibuat di syurga: Git dan IntelliJ IDEA - 9Kami ambil perhatian bahawa di sebelah kiri dan kanan kami mempunyai dua versi fail yang sama yang perlu digabungkan menjadi satu. Dan di bahagian tengah, kami mempunyai keputusan gabungan terakhir. Apabila projek mempunyai banyak cawangan, komitmen dan pengguna, anda perlu mencari secara berasingan mengikut cawangan, pengguna dan tarikh: Perlawanan yang dibuat di syurga: Git dan IntelliJ IDEA - 10Perkara terakhir yang saya ingin jelaskan sebelum kita bermula ialah cara memahami cawangan mana kita berada. Saya akan memberi anda seminit untuk memikirkannya... Adakah anda menemuinya? mengalah? :D Di sudut kanan bawah, terdapat butang berlabel Git: master. Apa sahaja yang mengikuti "Git:" ialah cawangan semasa. Jika anda mengklik butang, anda boleh melakukan banyak perkara yang berguna: beralih ke cawangan lain, buat yang baharu, menamakan semula yang sedia ada dan seterusnya.Perlawanan yang dibuat di syurga: Git dan IntelliJ IDEA - 11

Bekerja dengan repositori

Kekunci panas yang berguna

Untuk kerja masa hadapan, anda perlu mengingati beberapa kekunci pintas yang sangat berguna:
  1. CTRL+T — Dapatkan perubahan terkini daripada repositori jauh (git pull).
  2. CTRL+K — Buat komit / lihat semua perubahan semasa. Ini termasuk kedua-dua fail yang tidak dijejaki dan diubah suai (lihat artikel saya tentang git, yang menerangkannya) (git commit).
  3. CTRL+SHIFT+K — Ini ialah arahan untuk menolak perubahan pada repositori jauh. Semua komit yang dibuat secara tempatan dan belum dalam repositori jauh akan ditolak (git push).
  4. ALT+CTRL+Z — Tukar balik dalam fail tertentu kepada keadaan komit terakhir yang dibuat dalam repositori tempatan. Jika anda memilih keseluruhan projek di penjuru kiri sebelah atas, anda boleh melancarkan semula perubahan dalam semua fail.
Perlawanan yang dibuat di syurga: Git dan IntelliJ IDEA - 12

Apa yang kita mahu?

Untuk menyelesaikan kerja, kita perlu menguasai senario asas yang digunakan di mana-mana. Objektifnya adalah untuk melaksanakan fungsi baharu dalam cawangan berasingan dan kemudian menolaknya ke repositori jauh (maka anda juga perlu membuat permintaan tarik ke cawangan utama, tetapi itu di luar skop artikel ini). Apa yang diperlukan untuk melakukan ini?
  1. Dapatkan semua perubahan semasa dalam cawangan utama (contohnya, "tuan").

  2. Daripada cawangan utama ini, buat cawangan berasingan untuk kerja anda.

  3. Laksanakan fungsi baharu.

  4. Pergi ke cawangan utama dan semak sama ada terdapat sebarang perubahan baharu semasa kami bekerja. Jika tidak, maka semuanya baik-baik saja. Tetapi jika terdapat perubahan, maka kami melakukan perkara berikut: pergi ke cawangan kerja dan asas semula perubahan dari cawangan utama kepada kami. Jika semuanya berjalan lancar, maka hebat. Tetapi kemungkinan besar akan ada konflik. Seperti yang berlaku, mereka hanya boleh diselesaikan terlebih dahulu, tanpa membuang masa di repositori jauh.

    Adakah anda tertanya-tanya mengapa anda perlu melakukan ini? Ia adalah adab yang baik dan menghalang konflik daripada berlaku selepas menolak cawangan anda ke repositori tempatan (sudah tentu, terdapat kemungkinan konflik masih akan berlaku, tetapi ia menjadi lebih kecil ).

  5. Tolak perubahan anda ke repositori jauh.
Apa yang seterusnya bergantung pada tugas anda dan imaginasi anda.

Dapatkan perubahan daripada pelayan jauh?

Saya menambah penerangan pada README dengan komitmen baharu dan ingin mendapatkan perubahan ini. Jika perubahan dibuat dalam repositori tempatan dan dalam repositori terpencil, maka kami dijemput untuk memilih antara gabungan dan pangkalan semula. Kami memilih untuk bergabung. Masukkan CTRL+T : Perlawanan yang dibuat di syurga: Git dan IntelliJ IDEA - 13Anda kini boleh melihat bagaimana README telah berubah, iaitu perubahan dari repositori jauh ditarik masuk, dan di sudut kanan bawah anda boleh melihat semua butiran perubahan yang datang dari pelayan.Perlawanan yang dibuat di syurga: Git dan IntelliJ IDEA - 14

Buat cawangan baharu berdasarkan master

Semuanya mudah di sini.
  1. Pergi ke penjuru kanan sebelah bawah dan klik Git: master . Pilih + Cawangan Baharu .

    Perlawanan yang dibuat di syurga: Git dan IntelliJ IDEA - 15
  2. Biarkan kotak semak cawangan Checkout dipilih dan masukkan nama cawangan baharu. Bagi saya, ia akan menjadi readme-improver .

    Perlawanan yang dibuat di syurga: Git dan IntelliJ IDEA - 16

    Git: master kemudiannya akan bertukar kepada Git: readme-improver .

Mari kita simulasi kerja selari

Untuk konflik muncul, seseorang perlu menciptanya :D Saya akan mengedit README dengan komit baharu melalui penyemak imbas, dengan itu mensimulasikan kerja selari. Seolah-olah seseorang membuat perubahan dalam fail yang sama semasa saya sedang mengusahakannya. Akibatnya akan menjadi konflik. Saya akan mengalih keluar perkataan "fully" daripada baris 10.

Laksanakan fungsi kami

Tugas kami ialah menukar README dan menambah penerangan pada artikel baharu. Iaitu, kerja dalam Git melalui IntelliJ IDEA. Tambah ini: Perlawanan yang dibuat di syurga: Git dan IntelliJ IDEA - 17Perubahan telah dilakukan. Sekarang kita boleh membuat komitmen. Tekan CTRL+K , yang memberi kita: Perlawanan yang dibuat di syurga: Git dan IntelliJ IDEA - 18Sebelum membuat komitmen, kita perlu melihat dengan teliti apa yang ditawarkan tetingkap ini. Saya menambah anak panah merah untuk menunjukkan kepada anda tempat untuk melihat. Terdapat banyak perkara menarik di sini. Dalam bahagian Mesej Komit , kami menulis teks yang dikaitkan dengan komit. Kemudian untuk menciptanya, kita perlu mengklik Komit. Saya masih belum mengetahui cara melakukan ini dengan hotkey. Jika seseorang mengetahui caranya, sila tulis saya — itu akan membuatkan saya sangat gembira. Kami menulis bahawa README telah berubah dan mencipta komit. Makluman muncul di sudut kiri bawah dengan nama komit:Perlawanan yang dibuat di syurga: Git dan IntelliJ IDEA - 19

Semak sama ada cawangan utama telah berubah

Kami menyelesaikan tugas kami. Ianya berfungsi. Kami menulis ujian. Semuanya baik-baik sahaja. Tetapi sebelum menolak ke pelayan, kami masih perlu menyemak sama ada terdapat sebarang perubahan dalam cawangan utama dalam masa yang sama. Bagaimana itu boleh berlaku? Agak mudah: seseorang menerima tugasan selepas anda, dan seseorang itu menyelesaikannya lebih cepat daripada anda menyelesaikan tugasan anda. Jadi kita perlu pergi ke cawangan induk. Untuk melakukan ini, kita perlu melakukan apa yang ditunjukkan di sudut kanan bawah dalam tangkapan skrin di bawah: Perlawanan yang dibuat di syurga: Git dan IntelliJ IDEA - 20Dalam cawangan induk, tekan CTRL+T untuk mendapatkan perubahan terkini daripada pelayan jauh. Melihat apa perubahan, anda boleh melihat dengan mudah apa yang berlaku:Perlawanan yang dibuat di syurga: Git dan IntelliJ IDEA - 21Perkataan "fully" telah dialih keluar. Mungkin seseorang dari pemasaran memutuskan bahawa ia tidak sepatutnya ditulis seperti itu dan memberi pemaju tugas untuk mengemas kininya. Kami kini mempunyai salinan tempatan versi terkini cawangan induk. Kembali ke readme-improver . Sekarang kita perlu membuat asas semula perubahan daripada cawangan induk kepada kita. Kami melakukan ini: Perlawanan yang dibuat di syurga: Git dan IntelliJ IDEA - 22Jika anda melakukan segala-galanya dengan betul dan mengikut saya, hasilnya akan menunjukkan konflik dalam fail README: Perlawanan yang dibuat di syurga: Git dan IntelliJ IDEA - 23Di sini kami juga mempunyai banyak maklumat untuk difahami dan diserap. Ditunjukkan di sini ialah senarai fail (dalam kes kami, satu fail) yang mempunyai konflik. Kita boleh memilih daripada tiga pilihan:
  1. terima milik anda — terima hanya perubahan daripada readme-improver.
  2. terima mereka — terima sahaja perubahan daripada tuan.
  3. cantumkan — pilih sendiri apa yang anda mahu simpan dan apa yang perlu dibuang.
Tidak jelas apa yang berubah. Sekiranya terdapat perubahan adalah cawangan induk, ia mesti diperlukan di sana, jadi kita tidak boleh menerima perubahan kita begitu sahaja. Sehubungan itu, kami memilih gabungan : Perlawanan yang dibuat di syurga: Git dan IntelliJ IDEA - 24Di sini kita dapat melihat bahawa terdapat tiga bahagian:
  1. Ini ialah perubahan daripada readme-improver.
  2. Hasil gabungan. Buat masa ini, ia adalah apa yang wujud sebelum perubahan.
  3. Perubahan daripada cawangan induk.
Kami perlu menghasilkan hasil gabungan yang akan memuaskan hati semua orang. Menyemak perkara yang telah diubah SEBELUM perubahan kami, kami menyedari bahawa ia hanya mengalih keluar perkataan "fully". Okay, tiada masalah! Ini bermakna kami juga akan mengalih keluarnya dalam hasil gabungan dan kemudian menambah perubahan kami. Setelah kami membetulkan hasil gabungan, kami boleh mengklik Guna . Kemudian pemberitahuan akan muncul, memberitahu kami bahawa pangkalan semula telah berjaya: Perlawanan yang dibuat di syurga: Git dan IntelliJ IDEA - 25Di sana! Kami menyelesaikan konflik pertama kami melalui IntelliJ IDEA :D

Tolak perubahan pada pelayan jauh

Langkah seterusnya ialah menolak perubahan pada pelayan jauh dan membuat permintaan tarik. Untuk melakukan ini, hanya tekan CTRL+SHIFT+K . Kemudian kita dapat: Perlawanan yang dibuat di syurga: Git dan IntelliJ IDEA - 26Di sebelah kiri, akan ada senarai komit yang belum ditolak ke repositori jauh. Di sebelah kanan akan terdapat semua fail yang telah berubah. Dan itu sahaja! Tekan Tekan dan anda akan mengalami kegembiraan :) Jika tolakan berjaya, anda akan melihat pemberitahuan seperti ini di sudut kanan bawah:Perlawanan yang dibuat di syurga: Git dan IntelliJ IDEA - 27

Bahagian bonus

Pada mulanya, saya tidak mahu menambah penciptaan permintaan tarik pada artikel ini, tetapi ia tidak lengkap tanpanya. Jadi, mari kita pergi ke repositori GitHub (yang milik anda, sudah tentu :)) dan kita melihat bahawa GitHub sudah tahu apa yang kita mahu: Perlawanan yang dibuat di syurga: Git dan IntelliJ IDEA - 28Klik Bandingkan & tarik permintaan . Kemudian klik Buat permintaan tarik . Oleh kerana kami telah menyelesaikan konflik terlebih dahulu, kini apabila membuat permintaan tarik, kami boleh segera menggabungkannya: Perlawanan yang dibuat di syurga: Git dan IntelliJ IDEA - 29Dan itu sahaja yang saya ingin katakan kali ini. Sudah tentu, saya hanya membuka sedikit pintu untuk anda dan menunjukkan kepada anda sebahagian kecil. Anda akan belajar tentang selebihnya apabila anda memerlukannya. Saya mempunyai tabiat menjemput anda untuk mengikuti saya di GitHub, tempat saya menyiarkan projek saya yang melibatkan pelbagai teknologi yang saya gunakan di tempat kerja. Saya baru-baru ini membuat pencapaian peribadi: salah satu projek saya telah diberikan bintang oleh lebih daripada seratus pembangun. Terdapat perasaan gembira yang luar biasa apabila anda tahu bahawa apa yang anda telah lakukan digunakan oleh orang lain. Dan menggunakannya untuk kebaikan.

Pautan berguna

  1. CodeGym: Bermula dengan Git: panduan komprehensif untuk pemula
  2. GitHub: Projek demo untuk latihan
  3. JetBrains: Sediakan Repositori Git
  4. GitHub: Akaun saya
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION