Input yang diperlukan:
- Baca, ikuti, dan pahami artikel saya tentang Git . Ini akan membantu memastikan bahwa semuanya sudah diatur dan siap digunakan.
- Instal IntelliJ IDEA.
- Alokasikan satu jam waktu pribadi untuk mencapai penguasaan penuh.
Kloning proyek secara lokal
Ada dua opsi di sini:- Jika Anda sudah memiliki akun GitHub dan ingin mendorong sesuatu nanti, lebih baik fork proyek dan mengkloning salinan Anda sendiri.
- Kloning repositori saya dan lakukan semuanya secara lokal tanpa kemampuan untuk mendorong semuanya ke server. Bagaimanapun, ini adalah repositori saya :)
-
Salin alamat proyek:
-
Buka IntelliJ IDEA dan pilih "Dapatkan dari Kontrol Versi":
-
Salin dan tempel alamat proyek:
-
Anda akan diminta untuk membuat proyek IntelliJ IDEA. Menerima pesanan:
-
Karena tidak ada sistem build dan itu di luar cakupan artikel ini, kami memilih Create project from existing sources :
-
Selanjutnya Anda akan melihat layar yang indah ini: Sekarang 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.Selain 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: Perhatikan 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: Hal 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.Bekerja dengan repositori
Tombol pintas yang berguna
Untuk pekerjaan selanjutnya, Anda perlu mengingat beberapa hotkey yang sangat berguna:- CTRL+T — Dapatkan perubahan terbaru dari repositori jarak jauh (git pull).
- 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).
- 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).
- 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.
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?-
Dapatkan semua perubahan saat ini di cabang utama (misalnya, "master").
-
Dari cabang utama ini, buat cabang terpisah untuk pekerjaan Anda.
-
Menerapkan fungsi baru.
-
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).
- Dorong perubahan Anda ke repositori jarak jauh.
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 : Anda 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.Buat cabang baru berdasarkan master
Semuanya sederhana di sini.-
Pergi ke pojok kanan bawah dan klik Git: master . Pilih + Cabang Baru .
Biarkan kotak centang Checkout branch dipilih dan masukkan nama cabang baru. Bagi saya, itu akan menjadi readme-improver .
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: Perubahan telah selesai. Sekarang kita dapat membuat komit. Tekan CTRL+K , yang memberi kita: Sebelum 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: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: Di cabang master, tekan CTRL+T untuk mendapatkan perubahan terbaru dari server jarak jauh. Melihat apa perubahannya, Anda dapat dengan mudah melihat apa yang terjadi:Kata "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: Jika Anda melakukan semuanya dengan benar dan mengikuti saya, hasilnya akan menunjukkan konflik dalam file README: Di 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:- terima milik Anda — hanya terima perubahan dari readme-improver.
- terima milik mereka — terima hanya perubahan dari master.
- gabung — pilih sendiri apa yang ingin Anda simpan dan apa yang akan dibuang.
- Ini adalah perubahan dari readme-improver.
- Hasil gabungan. Untuk saat ini, itulah yang ada sebelum perubahan.
- Perubahan dari cabang master.
GO TO FULL VERSION