Browse Source

docs: add push.md and pull.md git workflow guides

Agent-ready commands and checklists for sync with rbsetiawan/LDAPWeb.

Co-authored-by: Cursor <cursoragent@cursor.com>
master
Budi Setiawan 4 weeks ago
parent
commit
6d999e5f5d
  1. 189
      pull.md
  2. 169
      push.md

189
pull.md

@ -0,0 +1,189 @@ @@ -0,0 +1,189 @@
# Pull dari Git — LDAPWeb Monorepo
> Panduan pull dari [git.gisportal.id](https://git.gisportal.id/) · akun **rbsetiawan** · repo **LDAPWeb**
## Info repository
| Item | Nilai |
|------|-------|
| Remote | `https://git.gisportal.id/rbsetiawan/LDAPWeb.git` |
| Branch default | `master` |
| Root lokal | `D:\Project\app on git` |
| Web | https://git.gisportal.id/rbsetiawan/LDAPWeb |
### Folder lokal tidak dari repo ini
Folder berikut **tidak** di-track monorepo LDAPWeb (tetap ada di disk, di-ignore):
- `ops/`
- `support/` → repo terpisah: `http://git.gisportal.id/rfahreza/support.git`
- `support-api/` → repo terpisah: `http://git.gisportal.id/rfahreza/support-api.git`
Pull monorepo **tidak** mengupdate `support/` atau `support-api/`. Gunakan pull terpisah di folder masing-masing bila perlu.
---
## Perintah langsung ke Agent
Salin blok di bawah ke chat Cursor bila ingin Agent melakukan pull:
```
Pull terbaru dari git.gisportal.id (rbsetiawan/LDAPWeb).
Ikuti pull.md: cek status lokal, backup/stash jika ada perubahan belum commit, pull origin master, laporkan file yang berubah.
Jangan overwrite .env lokal tanpa konfirmasi.
```
### Variasi perintah
| Tujuan | Perintah ke Agent |
|--------|-------------------|
| Pull standar | `Pull origin master sesuai pull.md` |
| Pull aman | `Stash perubahan lokal, pull, lalu pop stash sesuai pull.md` |
| Sync perangkat baru | `Clone atau pull LDAPWeb monorepo, jelaskan folder yang di-ignore` |
| Cek saja | `Fetch dan bandingkan lokal vs remote tanpa merge — laporkan perbedaan` |
| Pull support terpisah | `Pull support-api di folder support-api/ dari remote rfahreza` |
---
## Perintah manual (PowerShell)
### 1. Masuk ke root proyek
```powershell
cd "D:\Project\app on git"
```
### 2. Cek kondisi lokal
```powershell
git status
git remote -v
git fetch origin
git log HEAD..origin/master --oneline
```
### 3. Pull (working tree bersih)
```powershell
git pull origin master
```
### 4. Pull aman (ada perubahan lokal)
```powershell
git stash push -m "wip sebelum pull"
git pull origin master
git stash pop
```
Jika `stash pop` konflik, selesaikan file konflik lalu:
```powershell
git add .
# jangan commit otomatis kecuali user minta
```
### 5. Verifikasi
```powershell
git status
git log -3 --oneline
```
---
## Clone perangkat baru
```powershell
git clone https://git.gisportal.id/rbsetiawan/LDAPWeb.git "D:\Project\app on git"
cd "D:\Project\app on git"
```
Setelah clone:
1. Salin `.env` dari backup atau buat dari `*.env.example` — file `.env` tidak ada di repo.
2. Folder `ops/`, `support/`, `support-api/` perlu disiapkan terpisah jika dipakai.
3. `GeoNetAgent/agent/config.json` — salin dari `config.example.json` atau `config.share.json`.
---
## Pull sub-proyek terpisah (opsional)
### support
```powershell
cd "D:\Project\app on git\support"
git pull origin master
```
### support-api
```powershell
cd "D:\Project\app on git\support-api"
git pull origin master
```
---
## Checklist Agent setelah pull
1. **Laporkan** commit baru yang masuk (`git log` sebelum/sesudah).
2. **Jangan hapus** `.env` lokal — pull tidak menimpa file yang di-ignore kecuali user sudah commit `.env` (seharusnya tidak).
3. **Cek konflik** — jika ada, bantu selesaikan atau minta keputusan user.
4. **Baca ulang** `.cursor/*.md` jika berubah — itu sumber konteks AI di perangkat ini.
5. **Jangan** `git pull --rebase` atau `reset --hard` tanpa persetujuan user.
---
## Troubleshooting
### `Your local changes would be overwritten`
```powershell
git stash
git pull origin master
git stash pop
```
### `fatal: not a git repository`
```powershell
cd "D:\Project\app on git"
git init
git remote add origin https://git.gisportal.id/rbsetiawan/LDAPWeb.git
git fetch origin
git checkout -b master origin/master
```
### Diverged branches
```powershell
git fetch origin
git log --oneline --graph --all -10
```
Laporkan ke user — jangan force-push/pull tanpa instruksi.
### Ingin hanya lihat perubahan remote
```powershell
git fetch origin
git diff master origin/master
```
---
## Alur singkat (Agent)
```mermaid
flowchart LR
A[git status] --> B{Perubahan lokal?}
B -->|Ya| C[stash atau minta commit]
B -->|Tidak| D[git pull origin master]
C --> D
D --> E{Konflik?}
E -->|Ya| F[Selesaikan / laporkan]
E -->|Tidak| G[Laporkan commit baru]
```
Lihat juga: [push.md](push.md)

169
push.md

@ -0,0 +1,169 @@ @@ -0,0 +1,169 @@
# Push ke Git — LDAPWeb Monorepo
> Panduan push ke [git.gisportal.id](https://git.gisportal.id/) · akun **rbsetiawan** · repo **LDAPWeb**
## Info repository
| Item | Nilai |
|------|-------|
| Remote | `https://git.gisportal.id/rbsetiawan/LDAPWeb.git` |
| Branch default | `master` |
| Root lokal | `D:\Project\app on git` |
| Web | https://git.gisportal.id/rbsetiawan/LDAPWeb |
### Folder di-ignore (tidak ikut push)
- `ops/`
- `support/`
- `support-api/`
- `LDAPWeb.code-workspace`
- `.env` (kecuali `*.env.example`)
- `node_modules/`, `.venv/`, `GeoNetAgent/agent/config.json`
`support/` dan `support-api/` punya repo Git terpisah di akun lain — jangan di-push dari monorepo ini.
---
## Perintah langsung ke Agent
Salin blok di bawah ke chat Cursor bila ingin Agent melakukan push:
```
Push perubahan ke git.gisportal.id (rbsetiawan/LDAPWeb).
Ikuti push.md: cek status, pastikan tidak ada .env/secret, commit dengan pesan jelas, lalu push origin master.
Jangan push folder yang di-ignore (.gitignore).
```
### Variasi perintah
| Tujuan | Perintah ke Agent |
|--------|-------------------|
| Push semua perubahan | `Commit dan push semua perubahan ke origin master sesuai push.md` |
| Push satu folder | `Commit dan push hanya perubahan di GeoNetAgent/ ke origin master` |
| Push setelah sync docs | `Update dokumentasi .cursor lalu commit & push sesuai push.md` |
| Cek sebelum push | `Jalankan pre-push checklist di push.md, laporkan hasil tanpa push` |
---
## Perintah manual (PowerShell)
### 1. Masuk ke root proyek
```powershell
cd "D:\Project\app on git"
```
### 2. Cek perubahan
```powershell
git status
git diff
git diff --staged
```
### 3. Stage file
```powershell
# Semua perubahan (hormati .gitignore)
git add .
# Atau per folder
git add GeoNetAgent/
git add LDAPWeb/
git add server-audit/
git add server-connection/
```
### 4. Commit
```powershell
git commit -m "feat(GeoNetAgent): deskripsi singkat perubahan"
```
Contoh pesan commit:
```powershell
git commit -m "docs: sinkronkan .cursor setelah sesi pengembangan"
git commit -m "fix(LDAPWeb): perbaiki validasi login LDAP"
git commit -m "chore: update nginx config collector"
```
### 5. Push
```powershell
git push origin master
```
Atau (jika upstream sudah di-set):
```powershell
git push
```
### 6. Verifikasi
```powershell
git status
git log -1 --oneline
```
---
## Checklist Agent sebelum push
Agent **wajib** memeriksa ini sebelum `git commit` / `git push`:
1. **Tidak ada secret** — pastikan `.env`, password, token, atau kredensial tidak ter-stage.
2. **Hormati `.gitignore`** — jangan paksa-add `ops/`, `support/`, `support-api/`.
3. **Dokumentasi** — jika ada perubahan arsitektur/desain, update `.cursor/*.md` atau ADR dulu (lihat `GeoNetAgent/perintah.md`).
4. **Pesan commit** — jelas, menyebut area (`GeoNetAgent`, `LDAPWeb`, dll.) dan alasan singkat.
5. **Branch** — push ke `master` kecuali user minta branch lain.
6. **Jangan** `git push --force` ke `master` tanpa persetujuan eksplisit user.
---
## Troubleshooting
### Autentikasi gagal
```powershell
git remote -v
git push origin master
```
Credential Windows Credential Manager: host `git.gisportal.id`, user `rbsetiawan`.
### Remote belum ada
```powershell
git remote add origin https://git.gisportal.id/rbsetiawan/LDAPWeb.git
git push -u origin master
```
### Push ditolak (behind remote)
```powershell
git pull origin master
# selesaikan konflik jika ada, lalu:
git push origin master
```
Lihat juga: [pull.md](pull.md)
### File besar / push lambat
`server-connection/databaselist/vendor/` ikut repo — hindari commit ulang vendor tanpa perlu.
---
## Alur singkat (Agent)
```mermaid
flowchart LR
A[git status] --> B{Ada secret?}
B -->|Ya| C[Stop — perbaiki .gitignore]
B -->|Tidak| D[git add]
D --> E[git commit]
E --> F[git push origin master]
F --> G[git status — up to date]
```
Loading…
Cancel
Save