Development

วิธีการลบ .env file ออกจาก git แบบถูกวิธี

สมมติว่าเราเผลอ commit ไฟล์ .env ที่มี API key ไปแล้ว และ push ขึ้น GitHub เราต้องรีบลบมันออกทันที เพราะข้อมูลอาจถูกนำไปใช้ได้

.env leak

สมมติว่าเราเผลอ commit ไฟล์ .env ที่มี API key ไปแล้ว และ push ขึ้น GitHub เราต้องรีบลบมันออกทันที เพราะข้อมูลอาจถูกนำไปใช้ได้

สำหรับวิธีการลบ .env file แบบถูกวิธีให้ทำแบบนี้นะครับ พร้อมแล้วไปลุยกันเลยย

1. นำ .env file ไปใส่ใน .gitignore ก่อน

.gitignore
.env
.env.*

.env.:* เช่น .env.production .env.local .env.development

แนะนำให้ลองใช้ https://www.toptal.com/developers/gitignore ผมใช้เป็นประจำครับ เป็นเครื่องมือในการช่วยสร้าง gitignore ไฟล์ชั้นดีเลย

2. ลบ .env file ออกจาก git แบบในทุก ๆ commits

git filter-branch --index-filter "git rm -rf --cached --ignore-unmatch .env" HEAD

Output

ถ้าลบออกเฉย ๆ ด้วยคำสั่ง git rm -r --cached .env หรือ rm .env แล้ว commit ไปใหม่ สิ่งที่จะเกิดขึ้นคือไฟล์จะหายไปแค่ commit ล่าสุดเท่านั้น แต่ถ้าไปดูใน commit history ไฟล์ดังกล่าวจะยังอยู่ครับ

3. push .git ไฟล์อันใหม่ขึ้นไปด้วยคำสั่ง

⚠️ คำเตือน: คำสั่งนี้จะเปลี่ยนแปลงประวัติทั้งหมดของ Project ควรแน่ใจว่าไม่มีใครใช้งาน repository นี้อยู่ก่อนจะ push ด้วย --force

git push origin main --force

Result

เพียงแค่นี้ .env file ก็จะถูกลบออกไปจาก Git ของเราเรียบร้อยแล้วครับ

💡 Tip: ถ้าเคย push .env ขึ้น GitHub, Gitlab, Gitea หรือ Git Platform อื่น ๆ แล้ว อย่าลืมรีเซ็ต API key หรือ Token ที่อยู่ในไฟล์ด้วยนะครับ เพื่อความปลอดภัยสูงสุด

Related Articles

Simple Paginate
Development

Simple Paginate

Code ตัวอย่างคือการใช้งานใน Express + Typescript + Mongoose
ตั้งค่าให้สามารถเชื่อมต่อ Local Network ได้ ตอนที่เชื่อม openvpn
Development

ตั้งค่าให้สามารถเชื่อมต่อ Local Network ได้ ตอนที่เชื่อม openvpn

แก้ไขไฟล์ openvpn config หากมีการ import เข้าไปใน openvpn gui แล้วสามารถค้นหาไฟล์การตั้งค่าได้ที่
N8N วิธีการ Setup | Part 1
Development

N8N วิธีการ Setup | Part 1

วิธีการ Self-hosted N8N ด้วย docker อย่างง่าย