diff --git a/README.md b/README.md index c91f16b..e62d022 100644 --- a/README.md +++ b/README.md @@ -171,6 +171,75 @@ dimigrasi. Hentikan stack, restore database dan filestore dari backup Odoo 17 ke volume/database terpisah, ubah image kembali ke `odoo:17.0`, lalu validasi aplikasi sebelum cutover ulang. +## Cara menyelesaikan merge conflict Git + +Contoh berikut menggabungkan branch `odoo18` ke `master`. Pastikan perubahan +lokal sudah disimpan atau di-commit sebelum memulai: + +```bash +git status +git fetch origin +git switch master +git pull --ff-only origin master +git merge --no-ff odoo18 +``` + +Jika merge conflict terjadi, lihat file yang belum terselesaikan: + +```bash +git status +git diff --name-only --diff-filter=U +``` + +Buka setiap file tersebut dan cari marker berikut: + +```text +[marker pembuka] perubahan dari branch saat ini +[marker pemisah] perubahan dari branch yang sedang di-merge +[marker penutup] +``` + +Hapus marker dan gabungkan isi yang benar secara manual. Jangan langsung +memilih seluruh file dari salah satu branch jika kedua perubahan diperlukan. +Untuk memilih satu sisi secara sengaja, gunakan: + +```bash +# Pilih isi dari branch saat ini +git checkout --ours -- path/to/file + +# Pilih isi dari branch yang sedang di-merge +git checkout --theirs -- path/to/file +``` + +Setelah semua conflict diperbaiki, validasi proyek sebelum commit: + +```bash +git diff --check +docker compose config +git diff --name-only --diff-filter=U +``` + +Perintah terakhir harus menghasilkan output kosong. Kemudian stage file yang +sudah diselesaikan dan buat merge commit: + +```bash +git add path/to/resolved-file +git add -u +git commit -m "Merge odoo18 branch into master" +git status --short --branch +git push origin master +``` + +Jika ingin membatalkan merge sebelum commit: + +```bash +git merge --abort +``` + +Jangan commit `.env`, backup database, password, atau token ketika menyelesaikan +conflict. Periksa `git diff --cached` sebelum commit untuk memastikan rahasia +tidak ikut ter-stage. + ## API untuk Flutter (via JSON-RPC `execute_kw`) Semua melalui `POST /jsonrpc` dengan `{service:'object', method:'execute_kw'}`. Login: `common.authenticate(db, user, pass)` → `uid`.