Mengelola dokumen LaTeX dengan Git: mengapa file .tex teks ideal untuk diff yang bersih, setup GitHub dengan GitHub Actions compile otomatis, integrasi Git Overleaf, tips repositori & .gitignore, serta branch strategy untuk kolaborasi dan review via PR.

Setelah di episode 16 kita membuat makro dinamis, pada episode ini kita membawa proyek LaTeX ke ranah kolaborasi dan pengelolaan versi dengan Git. Ini salah satu keunggulan terbesar LaTeX dibanding editor WYSIWYG: source-nya teks murni, sehingga version control berjalan mulus.
Mengapa penting? Skripsi/tesis/paper jarang dikerjakan sendirian, dan bahkan dokumen pribadi pun butuh riwayat revisi. Dengan Git, kalian bisa melacak setiap perubahan, membatalkan kesalahan, berkolaborasi via pull request, dan mengotomatiskan kompilasi di CI. Ini alur kerja profesional yang membedakan penulis LaTeX amatir dari yang pro.
File .tex adalah teks biasa — persis yang paling disukai Git untuk menghasilkan diff yang bersih dan terbaca:
- Kata yang salah eja.
+ Kata yang benar eja.Berbeda dari file .docx (binary) yang diff-nya tidak terbaca, perbedaan di .tex langsung terlihat baris per baris. Ini membuat review dan rollback akurat. Yang bisa di-versi-kan:
.tex, .bib, .cls, .sty — semua teks.figures/ — gambar (vektor/raster).Yang sebaiknya tidak di-versi-kan (artefak build):
*.aux
*.log
*.toc
*.out
*.bbl
*.blg
*.synctex.gz
*.pdfFile .pdf (hasil) umumnya di-.gitignore karena bisa di-generate ulang — menyimpannya hanya menambah beban repositori tanpa nilai (kecuali untuk rilis tertentu).
Tempatkan proyek di GitHub untuk kolaborasi + CI otomatis. Alur dasarnya:
git init
git add .
git commit -m "feat: kerangka tesis"
git remote add origin <url-repo>
git push -u origin mainUntuk kompilasi otomatis per commit/PR, gunakan GitHub Actions dengan action latex-action (mis. xu-cheng/latex-action):
name: Compile LaTeX
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: xu-cheng/latex-action@v3
with:
root_file: main.tex
compiler: lualatex
args: -interaction=nonstopmode -file-line-error
- uses: actions/upload-artifact@v4
with:
name: paper-pdf
path: main.pdfSetiap push/PR akan mengompilasi main.tex dengan lualatex dan meng-upload main.pdf sebagai artifact — bisa diunduh/inspect di tab Actions. Ini memastikan dokumen selalu ter-build dengan benar di lingkungan standar.
Tip
-interaction=nonstopmode membuat kompilasi tidak berhenti minta input saat error, dan -file-line-error menghasilkan format error file:line: yang mudah diurai CI. Kombinasi ini penting untuk kompilasi noninteractive di Actions.
Overleaf menyediakan integrasi Git — proyek bisa di-sync dengan repo lokal/GitHub (fitur di paket berbayar). Alur hibrida:
Ini menggabungkan kecepatan kolaborasi Overleaf dengan kontrol Git/lokal. Detail Overleaf vs local dibahas lengkap di episode 25.
Beberapa praktik baik untuk repositori LaTeX:
feat: tambahkan bab metode) — memudahkan navigasi riwayat.\input/\includeonly (episode 12) agar diff per-bab terisolasi dan review lebih fokus..aux, .log, .toc, .pdf) — pakai .gitignore.figures/ agar struktur bersih.Untuk fokus review dan menghindari konflik pada dokumen bersama, gunakan branch:
main — dokumen siap submit (skripsi final, paper rilis).wip/<bab> — cabang kerja per bab (mis. wip/bab3-metode).main.main ──────────────────── (siap submit)
\ wip/bab3 ──Dengan PR, kolaborator bisa memberi komentar pada baris tertentu (mis. "kutipan ini butuh referensi"), dan perubahan hanya masuk main setelah disetujui. Ini standar kerja tim modern.
Warning
Konflik merge mungkin terjadi saat beberapa orang mengedit baris yang sama (mis. preamble). Solusi: pisahkan baris per-tugas (bundling class/package per bagian), komit sering, dan jaga main selalu dalam keadaan compile-clean agar kembali dengannya tidak menyakitkan.
Pada episode 17 ini, kalian telah membawa LaTeX ke Git.
Inti yang harus dibawa pulang:
.tex teks = diff bersih, review & rollback akurat; .gitignore artefak (.aux/.log/.pdf).latex-action) mengompilasi per PR & upload PDF artifact.main siap submit + wip/<bab>, review via PR.Di episode 18 selanjutnya, kita akan membahas otomatisasi compile: latexmk, Makefile & CI — latexmk sebagai standar build, lateksmkrc, Makefile untuk target draft/final, serta pipeline GitHub Actions dengan lint sebagai gate check. Sampai jumpa di episode 18!