Git: kesalahan umum dan cara memperbaikinya

Jika Anda pernah bekerja pada proyek besar, di mana, selain Anda, banyak programmer lain yang terlibat, maka Anda jelas menggunakan Git sebagai sistem kontrol versi. Dalam perjalanan menggunakan sesuatu, sesuai dengan tingkat kompleksitas Git yang sama, semua orang membuat kesalahan.


Penulis materi, terjemahan yang kami terbitkan hari ini, akan membahas kesalahan umum yang dilakukan programmer ketika bekerja dengan Git, dan berbicara tentang cara mengatasi kesalahan ini.

Kesalahan dalam pesan komit terakhir


Setelah beberapa jam bekerja dengan baik, mudah untuk membuat kesalahan dalam pesan komit. Untungnya, ini dapat dengan mudah diperbaiki dengan perintah berikut:

git commit --amend 

Perintah ini akan membuka editor dan memungkinkan Anda untuk membuat perubahan pada pesan terakhir dari komit. Tidak seorang pun kecuali Anda harus tahu bahwa Anda menulis "Komitmen awal" dengan tiga "m".

Kesalahan dalam nama cabang


Misalkan jam hampir pukul 15:00, dan Anda belum makan siang. Akibatnya, tersiksa oleh kelaparan, Anda menamai feature-brunch cabang baru. Enak, Anda tidak bisa mengatakan apa-apa.

Masalah ini juga bisa diselesaikan. Anda bisa mengganti nama cabang dengan cara yang sama seperti mengganti nama file menggunakan perintah mv . Ini tentang memindahkannya ke tempat baru dengan nama yang benar:

 git branch -m feature-brunch feature-branch 

Jika Anda telah mengirim utas ini ke repositori, Anda perlu melakukan beberapa hal lagi untuk mengganti nama. Anda harus menghapus cabang lama, dan mengirim yang baru ke repositori:

 git push origin --delete feature-brunch git push origin feature-branch 

Perubahan komit acak ke cabang master


Misalkan Anda sedang mengerjakan fitur baru, dan terburu-buru, Anda lupa membuat cabang baru untuk itu. Anda telah melakukan banyak file dan semua ini terletak di cabang master . Anda dapat memindahkan semua perubahan ini ke cabang baru menggunakan tiga perintah berikut. Harap dicatat bahwa jika Anda tidak menggunakan, seperti yang diterapkan pada perubahan, perintah commit atau stash , mereka akan hilang.

 git branch feature-branch git reset HEAD~ --hard git checkout feature-branch 

Akibatnya, cabang baru akan dibuat, perubahan di cabang master akan digulirkan kembali ke keadaan di mana sebelum perubahan dilakukan, dan transisi ke cabang baru akan dilakukan, yang akan berisi semua perubahan yang dibuat sebelumnya ke master .

Bekerja dengan file yang Anda lupa tambahkan ke komit terakhir


Pengawasan umum lainnya ketika bekerja dengan Git adalah bahwa komit dilakukan terlalu dini dan file yang diperlukan tidak masuk ke dalamnya. Katakanlah Anda melewatkan file, lupa menyimpannya, atau Anda perlu melakukan sedikit perubahan pada file tersebut sehingga komit terakhir masuk akal. Dalam situasi ini, perintah --amend akan berguna lagi. Tambahkan file yang hilang ke indeks repositori dan jalankan perintah ini:

 git add missed-file.txt git commit --amend 

Setelah itu, Anda dapat mengubah pesan komit, atau membiarkannya sama seperti sebelumnya.

Menambahkan file yang salah ke repositori


Bagaimana jika kesalahan Anda adalah kebalikan dari kesalahan sebelumnya? Bagaimana jika Anda menambahkan file ke indeks yang tidak akan Anda komit? Ini bisa berupa file ENV, direktori proyek pembangunan, foto anjing Anda yang Anda simpan secara tidak sengaja di folder yang salah. Semua ini bisa diperbaiki.

Jika tindakan Anda terbatas pada pengindeksan file, tetapi Anda belum melakukannya, akan sangat mudah untuk mengatasi masalah menggunakan perintah reset :

 git reset /assets/img/misty-and-pepper.jpg 

Jika Anda telah cukup maju dan berhasil melakukan perubahan, ketahuilah bahwa ini dapat diperbaiki. Anda hanya perlu menggunakan beberapa perintah lagi:

 git reset --soft HEAD~1 git reset /assets/img/misty-and-pepper.jpg rm /assets/img/misty-and-pepper.jpg git commit 

Akibatnya, komit terakhir akan dibatalkan, gambar akan dihapus, setelah itu komit baru akan ditempatkan di tempat yang seharusnya.

Bagaimana jika semuanya salah?


Teknik yang akan kita diskusikan sekarang membantu dalam situasi di mana semuanya berjalan salah. Misalnya, ini terjadi ketika Anda terlalu ingin menyalin solusi yang sudah jadi dengan StackOverflow, dan, setelah bekerja, repositori Anda dalam kondisi yang lebih buruk daripada di awal. Mungkin kita semua jatuh ke dalam situasi ini.

Perintah git reflog menunjukkan daftar semua yang Anda lakukan. Kemudian itu memungkinkan Anda untuk menggunakan alat Git untuk mengembalikan perubahan, untuk kembali ke salah satu status repositori sebelumnya. Perlu dicatat bahwa metode ini layak dipertimbangkan sebagai upaya terakhir, dan sebelum Anda menggunakannya, Anda harus berpikir dengan hati-hati. Jadi, Anda bisa daftar apa yang telah dilakukan dengan perintah berikut:

 git reflog 

Git mengingat semua tindakan kami dan sebagai hasil dari mengeksekusi perintah ini, Anda dapat melihat sesuatu seperti berikut:

 3ff8691 (HEAD -> feature-branch) HEAD@{0}: Branch: renamed refs/heads/feature-brunch to refs/heads/feature-branch 3ff8691 (HEAD -> feature-branch) HEAD@{2}: checkout: moving from master to feature-brunch 2b7e508 (master) HEAD@{3}: reset: moving to HEAD~ 3ff8691 (HEAD -> feature-branch) HEAD@{4}: commit: Adds the client logo 2b7e508 (master) HEAD@{5}: reset: moving to HEAD~1 37a632d HEAD@{6}: commit: Adds the client logo to the project 2b7e508 (master) HEAD@{7}: reset: moving to HEAD 2b7e508 (master) HEAD@{8}: commit (amend): Added contributing info to the site dfa27a2 HEAD@{9}: reset: moving to HEAD dfa27a2 HEAD@{10}: commit (amend): Added contributing info to the site 700d0b5 HEAD@{11}: commit: Addded contributing info to the site efba795 HEAD@{12}: commit (initial): Initial commit 

Perhatikan kolom paling kiri dari daftar ini. Ini berisi indeks. Jika Anda perlu kembali ke masa lalu, jalankan perintah berikut, ganti {index} dengan tautan yang sesuai, misalnya, dfa27a2 . Perintah ini terlihat seperti ini:

 git reset HEAD@{index} 

Ringkasan


Kami melihat beberapa cara untuk mengatasi kesalahan yang terjadi saat bekerja dengan Git. Kami harap Anda tidak akan membuat kesalahan seperti itu dan metode bekerja dengan Git ini tidak akan berguna bagi Anda. Dan jika terjadi kesalahan - Anda akan tahu apa yang harus dilakukan.

Pembaca yang budiman! Apakah Anda tahu tentang trik menarik untuk bekerja dengan Git? Jika demikian, silakan bagikan.

Source: https://habr.com/ru/post/id423015/


All Articles