# Git LFS (Large File Storage)

Git LFS (Large File Storage) เป็นเครื่องมือที่มีประโยชน์สำหรับนักพัฒนาที่ต้องการจัดการไฟล์ขนาดใหญ่หรือไฟล์ไบนารีใน Git repository ของพวกเขา โดย Git LFS ช่วยให้การจัดเก็บและการทำงานกับไฟล์เหล่านี้มีประสิทธิภาพมากขึ้น เนื่องจาก Git ถูกออกแบบมาเพื่อจัดการกับไฟล์ข้อความและการเปลี่ยนแปลงในไฟล์เหล่านั้น การจัดเก็บไฟล์ขนาดใหญ่หรือไฟล์ไบนารีอาจทำให้ประสิทธิภาพของ Git ลดลง

### คุณสมบัติของ Git LFS

1. **การจัดเก็บไฟล์ขนาดใหญ่**: Git LFS ช่วยให้คุณสามารถจัดเก็บไฟล์ขนาดใหญ่ในที่เก็บข้อมูลภายนอก โดยใน repository จะเก็บเพียง pointer ไปยังไฟล์เหล่านั้น ทำให้ repository มีขนาดเล็กลง
    
2. **การติดตามไฟล์ไบนารี**: คุณสามารถใช้ Git LFS เพื่อติดตามไฟล์ไบนารี เช่น รูปภาพ วิดีโอ หรือไฟล์ที่ไม่สามารถ diff ได้อย่างมีประสิทธิภาพ
    
3. **การทำงานร่วมกับ Git**: Git LFS ทำงานร่วมกับคำสั่ง Git ปกติ เช่น `git clone`, `git pull`, และ `git push` โดยอัตโนมัติ
    

### วิธีการใช้งาน Git LFS

#### ส่วนที่ 1: การติดตั้งและเริ่มต้นใช้งาน

1. **ติดตั้ง Git LFS**: เริ่มต้นด้วยการติดตั้ง Git LFS บนเครื่องของคุณ โดยใช้คำสั่งแพ็คเกจจัดการของระบบปฏิบัติการที่คุณใช้งาน ตัวอย่างเช่น:
    
    * สำหรับ macOS: ใช้คำสั่ง `brew install git-lfs`
        
    * สำหรับ Ubuntu: ใช้คำสั่ง `sudo apt-get install git-lfs`
        
2. **เริ่มต้นใช้งานใน repository**: หลังจากติดตั้ง Git LFS แล้ว ให้เข้าไปที่โฟลเดอร์โปรเจกต์ของคุณและรันคำสั่ง
    
    ```bash
    git lfs install
    ```
    
    คำสั่งนี้จะเตรียม repository ของคุณให้พร้อมสำหรับการใช้งาน Git LFS
    

#### ส่วนที่ 2: การติดตามและจัดการไฟล์

3. **ติดตามไฟล์**: สมมติว่าคุณมีไฟล์รูปภาพชื่อ `large-image.png` ที่ต้องการติดตามด้วย Git LFS ให้ใช้คำสั่ง
    
    ```bash
    git lfs track "large-image.png"
    ```
    
    คำสั่งนี้จะสร้างไฟล์ `.gitattributes` ที่ระบุว่าไฟล์ `large-image.png` ควรถูกจัดการโดย Git LFS
    
4. **เพิ่มและส่งไฟล์ไปยัง repository**: เพิ่มไฟล์ลงใน staging area และ commit การเปลี่ยนแปลง
    
    ```bash
    git add .gitattributes large-image.png
    git commit -m "Add large image with Git LFS"
    ```
    
    จากนั้นส่งไฟล์ไปยัง remote repository
    
    ```bash
    git push origin main
    ```
    

### ข้อดีของการใช้ Git LFS

* **ประสิทธิภาพที่ดีขึ้น**: ลดขนาดของ repository และปรับปรุงความเร็วในการ clone และ pull
    
* **การจัดการไฟล์ไบนารีที่ดีขึ้น**: ทำให้การทำงานกับไฟล์ไบนารีใน Git เป็นไปได้อย่างราบรื่น
    

Git LFS เป็นเครื่องมือที่มีประโยชน์สำหรับนักพัฒนาที่ต้องจัดการกับไฟล์ขนาดใหญ่หรือไฟล์ไบนารีในโครงการของพวกเขา ช่วยให้การทำงานกับ Git มีประสิทธิภาพมากขึ้นและลดปัญหาที่อาจเกิดจากการจัดการไฟล์ขนาดใหญ่ใน repository ปกติ

ได้ครับ คุณสามารถอัพโหลดไฟล์ .mp4 ขนาด 500MB โดยใช้ Git LFS ได้ตามขั้นตอนต่อไปนี้:

1. **ติดตั้ง Git LFS**: หากยังไม่ได้ติดตั้ง Git LFS บนเครื่องของคุณ ให้ทำการติดตั้งก่อน โดยใช้คำสั่งที่เหมาะสมกับระบบปฏิบัติการของคุณ เช่น `brew install git-lfs` สำหรับ macOS หรือ `sudo apt-get install git-lfs` สำหรับ Ubuntu
    
2. **เริ่มต้นใช้งาน Git LFS ใน repository**: เข้าไปที่โฟลเดอร์โปรเจกต์ของคุณและรันคำสั่ง
    
    ```bash
    git lfs install
    ```
    
3. **ติดตามไฟล์ .mp4 ขนาดใหญ่**: ใช้คำสั่งต่อไปนี้เพื่อติดตามไฟล์ .mp4 ที่คุณต้องการอัพโหลด ตัวอย่างเช่น ไฟล์ [`video-file.mp`](http://video-file.mp)`4` ขนาด 500MB
    
    ```bash
    git lfs track "*.mp4"
    ```
    
    คำสั่งนี้จะเพิ่มไฟล์ `.gitattributes` ที่ระบุว่าไฟล์นามสกุล .mp4 ควรถูกจัดการโดย Git LFS
    
4. **เพิ่มไฟล์ลงใน staging area**: ใช้คำสั่ง
    
    ```bash
    git add .gitattributes video-file.mp4
    ```
    
5. **Commit การเปลี่ยนแปลง**: บันทึกการเปลี่ยนแปลงใน repository ของคุณด้วยคำสั่ง
    
    ```bash
    git commit -m "Add video file with Git LFS"
    ```
    
6. **Push ไฟล์ไปยัง remote repository**: ส่งไฟล์ไปยัง remote repository ด้วยคำสั่ง
    
    ```bash
    git push origin main
    ```
    

เมื่อทำตามขั้นตอนเหล่านี้ ไฟล์ [`video-file.mp`](http://video-file.mp)`4` ขนาด 500MB จะถูกอัพโหลดไปยังที่เก็บข้อมูลของ Git LFS และใน repository จะมีเพียง pointer ไปยังไฟล์นั้น ทำให้การจัดการไฟล์ขนาดใหญ่มีประสิทธิภาพมากขึ้น
