Branching Git Alternatif dengan Worktree

Tentu kita udah nggak asing lagi dengan branch, merge, stash, dan istilah Git yang lain. Dalam artikel ini saya ingin bahas satu fitur Git yang jarang atau mungkin nggak pernah kita dengar sebelumnya, yaitu worktree.

Branch bisa dibilang seperti virtual-directory. Setiap branch isinya boleh beda, tapi lokasi fisiknya masih sama dalam satu direktori root. Waktu kita checkout sebuah branch, isi direktori root ini diganti file yang ada di branch itu. Ini bisa dianggap fitur Git atau kelemahan (liability), tergantung situasi.

Sejak versi 2.5 Git punya fitur namanya worktree yang memungkinkan kita bikin branch di direktori di luar root.

Terus apa bedanya dengan bikin klon di direktori lain?

Misalnya kita punya 2 repositori lokal hasil klon remote yang sama, masing-masing klon nggak punya hubungan langsung dengan yang lain. Klon di direktori dir_1/, nggak tau apa2 tentang klon di dir_2/.

Nah kalo worktree, semua masih berhubungan seperti branch biarpun lokasinya beda.

Continue reading →

Git Flow 02 – Release

Lanjutan dari:
Git Flow 01 – Intro

Sebelum rilis, kita bikin dulu release-branch dari develop, pake perintah:

git flow release start (nama rilis/versi)

Contohnya begini:

$ git flow release start v1.0
Switched to a new branch 'release/v1.0'

Summary of actions:
- A new branch 'release/v1.0' was created, based on 'develop'
- You are now on branch 'release/v1.0'

Follow-up actions:
- Bump the version number now!
- Start committing last-minute fixes in preparing your release
- When done, run:

     git flow release finish 'v1.0'

Di branch release/v1.0 ini kita jalanin proses-proses yg perlu buat rilis, misalnya:

Continue reading →

Git Flow 01 – Intro

Ada beberapa metode branching Git yang bisa kita praktekin. Ada model Centralized, Environment Branching, dan lain-lain. Git Flow adalah salah satu yang populer.

Di dalam metode Git-Flow, ada dua long-lived branch (cabang yang ga pernah dihapus) yaitu:
master
develop

master berisi kode yang di-deploy ke production-server. Jadi hanya kode yang sudah dites, lolos QA & dirilis yang ada di sini.

develop, sesuai namanya, dipake untuk development. Untuk sinkronisasi kode antara satu developer dengan yang lain. Penambahan fitur baru atau perbaikan kode selalu berbasis branch ini.

Instalasi

Ini opsional, kita bisa pake metode Git Flow pake perintah-perintah standar Git, tanpa command-line tool tapi rawan error karena lupa, dll. Jadi mending instal CLI-nya.

Ada dua macam CLI yang populer, satu yang Git Flow yg asli/vanilla & yg satu fork-nya git-flow-avh. Versi AVH lebih baru daripada yg vanilla & ada beberapa perintah tambahan.

  • Windows: git-flow-avh udah termasuk di dalam paket Git for Windows. Kalo pake Chocolatey, choco install git.
  • Mac: brew install git-flow-avh
  • Linux: di sini.

Continue reading →

Hosting Website Gratis di Gitlab

Gitlab sebuah perusahaan penyedia layanan hosting Git. Mirip Github tapi lebih ekonomis. Salah satu bedanya, di Gitlab, akun gratisan bisa punya private project, kalo di Github semuanya public / opensource, kecuali kalo kita pake akun berbayar.

Kalo Github punya Github Pages, Gitlab juga punya Gitlab Pages. Layanan ini bisa kita pake untuk hosting website gratisan & bisa sekalian belajar Git ( buat yang belum tahu).

Silakan daftar dulu kalo belum punya akun Gitlab. Saya tunggu …

Udah?

Bagus.

Continue reading →