Input yang diperlukan:
- Baca, ikuti dan fahami artikel saya tentang Git . Ini akan membantu memastikan segala-galanya disediakan dan sedia untuk digunakan.
- Pasang IntelliJ IDEA.
- Peruntukkan satu jam masa peribadi untuk mencapai penguasaan sepenuhnya.
Klonkan projek secara tempatan
Terdapat dua pilihan di sini:- Jika anda sudah mempunyai akaun GitHub dan ingin meneruskan sesuatu kemudian, lebih baik anda membatalkan projek itu dan mengklon salinan anda sendiri.
- Klon repositori saya dan lakukan segala-galanya secara tempatan tanpa keupayaan untuk menolak semuanya ke pelayan. Lagipun, ini adalah repositori saya :)
-
Salin alamat projek:
-
Buka IntelliJ IDEA dan pilih "Dapatkan daripada Kawalan Versi":
-
Salin dan tampal alamat projek:
-
Anda akan digesa untuk mencipta projek IntelliJ IDEA. Terima tawaran:
-
Memandangkan tiada sistem binaan dan itu di luar skop artikel ini, kami memilih Cipta projek daripada sumber sedia ada :
-
Seterusnya anda akan melihat skrin yang cantik ini: Sekarang 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.Selain 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: Kami 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: Perkara 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.Bekerja dengan repositori
Kekunci panas yang berguna
Untuk kerja masa hadapan, anda perlu mengingati beberapa kekunci pintas yang sangat berguna:- CTRL+T — Dapatkan perubahan terkini daripada repositori jauh (git pull).
- 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).
- 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).
- 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.
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?-
Dapatkan semua perubahan semasa dalam cawangan utama (contohnya, "tuan").
-
Daripada cawangan utama ini, buat cawangan berasingan untuk kerja anda.
-
Laksanakan fungsi baharu.
-
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 ).
- Tolak perubahan anda ke repositori jauh.
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 : Anda 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.Buat cawangan baharu berdasarkan master
Semuanya mudah di sini.-
Pergi ke penjuru kanan sebelah bawah dan klik Git: master . Pilih + Cawangan Baharu .
Biarkan kotak semak cawangan Checkout dipilih dan masukkan nama cawangan baharu. Bagi saya, ia akan menjadi readme-improver .
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: Perubahan telah dilakukan. Sekarang kita boleh membuat komitmen. Tekan CTRL+K , yang memberi kita: Sebelum 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: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: Dalam cawangan induk, tekan CTRL+T untuk mendapatkan perubahan terkini daripada pelayan jauh. Melihat apa perubahan, anda boleh melihat dengan mudah apa yang berlaku:Perkataan "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: Jika anda melakukan segala-galanya dengan betul dan mengikut saya, hasilnya akan menunjukkan konflik dalam fail README: Di 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:- terima milik anda — terima hanya perubahan daripada readme-improver.
- terima mereka — terima sahaja perubahan daripada tuan.
- cantumkan — pilih sendiri apa yang anda mahu simpan dan apa yang perlu dibuang.
- Ini ialah perubahan daripada readme-improver.
- Hasil gabungan. Buat masa ini, ia adalah apa yang wujud sebelum perubahan.
- Perubahan daripada cawangan induk.