6 Praktik Terbaik untuk Mengelola Gudang Git dengan Aman

Hindari mengacaukan repositori dan aktivitas lain yang membuat pengelolaan basis kode Anda menjadi sulit. Alih-alih, gunakan praktik terbaik untuk membantu mempermudah.







Dengan memeriksa sumber di repositori, Anda dapat menilai tingkat keamanan aplikasi. Tetapi jika tidak ada yang melihat kode, masalah hanya akan tumbuh. Untungnya, GitHub memiliki pakar keamanan sendiri yang baru-baru ini menemukan Trojan di beberapa repositori Git. Untuk beberapa alasan dia tidak diperhatikan oleh pemilik repositori ini. Meskipun kita tidak dapat mendikte orang lain bagaimana mengelola repositori kita sendiri, kita dapat belajar dari kesalahan mereka. Pada artikel ini kita akan melihat teknik yang berguna untuk bekerja dengan repositori.



Jelajahi repositori Anda





Ini mungkin rekomendasi yang paling penting. Apakah Anda telah membuat repositori sendiri atau menyerahkannya kepada Anda, penting untuk mengetahui konten repositori Anda. Minimal, Anda perlu mengetahui komponen dasar basis kode yang Anda kelola. Jika, setelah beberapa lusin penggabungan, sebuah file acak muncul, Anda dapat dengan mudah menemukannya karena itu akan menimbulkan pertanyaan bagi Anda. Selanjutnya, Anda akan ingin memeriksanya untuk mencari tahu, dan setelah itu memutuskan nasibnya.



Cobalah untuk tidak menambahkan binari





Git pada awalnya dirancang untuk file teks, baik itu kode C, Python atau Java, atau JSON, YAML, XML, Markdown, HTML, dan sebagainya:



$ cat hello.txt
This is plain text.
It's readable by humans and machines alike.
Git knows how to version this.

$ git diff hello.txt
diff --git a/hello.txt b/hello.txt
index f227cc3..0d85b44 100644
--- a/hello.txt
+++ b/hello.txt
@@ -1,2 +1,3 @@
 This is plain text.
+It's readable by humans and machines alike.
 Git knows how to version this.




Git tidak suka binari:



$ git diff pixel.png
diff --git a/pixel.png b/pixel.png
index 563235a..7aab7bc 100644
Binary files a/pixel.png and b/pixel.png differ

$ cat pixel.png
 PNG
IHDR7n $gAMA  
               abKGD݊ tIME 

                          -2R  
IDA c` ! 3%tEXtdate:create2020-06-11T11:45:04+12:00  r.%tEXtdate:modify2020-06-11T11:45:0


Data dalam file biner tidak dapat diuraikan dengan cara yang sama seperti teks biasa, jadi jika ada perubahan dalam biner, data tersebut harus ditimpa sepenuhnya.



Untuk memperburuk keadaan, Anda tidak dapat memeriksa (membaca dan mengurai) data biner sendiri.

Selain alat POSIX biasa, Anda dapat menemukan binari menggunakan git diff. Ketika Anda mencoba menjalankan diff dengan opsi --numstat, Git akan mengembalikan null:



$ git diff --numstat /dev/null pixel.png | tee
-     -   /dev/null => pixel.png
$ git diff --numstat /dev/null file.txt | tee
5788  0   /dev/null => list.txt


Jika Anda mempertimbangkan untuk menambahkan binari ke repositori Anda, berhentilah dan pikirkan. Jika biner dihasilkan selama proses build, lalu mengapa menambahkannya ke repo Anda? Jika Anda memutuskan untuk melakukan ini, pastikan Anda menjelaskan dalam file README atau tempat serupa mengapa Anda menyimpan binari dan apa protokol untuk memperbaruinya. Pembaruan harus dilakukan hemat karena setiap kali Anda membuat perubahan ke gumpalan, ruang penyimpanan berlipat ganda.



Perpustakaan pihak ketiga harus tetap menjadi pihak ketiga



Sementara salah satu dari banyak manfaat open source adalah Anda dapat dengan bebas menggunakan dan mendistribusikan kembali kode yang tidak Anda tulis, ada banyak alasan bagus untuk tidak meng-host perpustakaan pihak ketiga di repositori Anda sendiri. Pertama-tama, Anda harus memeriksa secara independen semua kode ini dan pembaruan lebih lanjut untuk memastikan bahwa perpustakaan dapat diandalkan. Kedua, ketika Anda menyalin pustaka pihak ketiga ke dalam repositori Git, itu akan mengalihkan fokus dari proyek utama.



Gunakan Git Submodule untuk mengelola dependensi eksternal .



Jangan gunakan git add secara membabi buta





Jika proyek Anda berhasil dikompilasi, tahan keinginan untuk menggunakan perintah git add. (di mana "." adalah direktori saat ini misalnya). Ini sangat penting jika Anda tidak secara manual menyusun proyek Anda tetapi menggunakan IDE untuk mengelola proyek Anda. Bisa sangat sulit untuk melacak apa yang telah ditambahkan ke repositori Anda ketika IDE mengelola proyek Anda. Karena itu, penting untuk menambahkan hanya apa yang telah Anda buat dan siapkan sendiri untuk ditambahkan, dan bukan objek baru yang muncul secara misterius di folder proyek Anda.



Jadi sebelum menjalankan git add, tinjau apa yang akan ditambahkan ke repositori. Jika Anda melihat objek yang tidak dikenal, cari tahu dari mana asalnya dan mengapa masih ada di direktori proyek Anda setelah menjalankan make clean (atau perintah yang setara).



Gunakan Git Abaikan





Direktori proyek tipikal berisi banyak file tersembunyi, metadata, dan artefak yang tidak perlu. Anda sebaiknya mengabaikan benda-benda ini: semakin banyak ada, semakin besar kemungkinan "sampah" ini akan mengganggu Anda dan Anda akan kehilangan sesuatu yang penting atau berbahaya.



File gitignore memungkinkan untuk menyaring hal-hal yang tidak perlu. Github.com/github/gitignore menawarkan beberapa templat gitignore khusus yang dapat Anda unduh dan host di proyek Anda. Gitlab.com , misalnya, menawarkan template semacam itu beberapa tahun yang lalu.



Moderat perubahan basis kode





Ketika Anda menerima Tarik atau Tarik Permintaan, atau ketika Anda menerima tambalan melalui email, Anda harus memastikan semuanya baik-baik saja. Tugas Anda adalah mempelajari kode baru yang masuk ke basis kode Anda dan memahami apa fungsinya. Jika Anda tidak setuju dengan implementasinya, atau yang lebih buruk, tidak memahami implementasi ini, tulis pesan kepada pengirim dan minta klarifikasi. Tidak ada yang salah dengan mempelajari kode baru yang mengklaim tempat di proyek Anda. Selain itu, Anda melakukannya untuk kepentingan pengguna Anda: dalam hal ini, mereka akan dengan jelas memahami perubahan apa yang Anda terima dan mengapa.



Mengambil tanggung jawab



Mengamankan perangkat lunak sumber terbuka adalah pekerjaan komunitas. Jelajahi basis kode, cegah kekacauan dan abaikan potensi ancaman keamanan di repositori yang Anda tiru. Git sangat kuat, tetapi ini hanya program komputer, jadi tanggung jawab untuk mengelola repo pada akhirnya adalah milik Anda.






Iklan



Server Epik adalah server virtual Linux atau Windows dengan prosesor AMD EPYC yang kuat dan drive Intel NVMe yang sangat cepat. Buang seperti kue panas!






All Articles