Private Git Repository Menggunakan Dropbox

11 Jul 2018 in Tools · 3 min read

Git salah satu version control yang populer saat ini. Saya sendiri pake Git, dulu sempet pake SVN (Apache Subversion) pas kerja di perusahaan di daerah tempat saya tinggal, yang paling saya inget SVN komitnya langsung nembak ke central server.😅 Programmer gak pake version control adalah programmer yang suka menyiksa diri sendiri.😆 Version control gak terbatas sama programmer aja sih, bisa juga buat hal lain, misal mahasiswa tingkat akhir yang lagi skripsian, biar gak bikin file dokumen baru setiap ada revisi. Kalo mau belajar Git bisa langsung baca dokumentasinya di sini.

Dropbox merupakan penyimpanan file online gratis. Dropbox bisa kita manfaatkan sebagai Git repostori *central yang sifatnya private. Untuk unduh dan instalasi Dropbox bisa cek di sini. Sebelum memulai, pastikan Git dan aplikasi Dropbox desktop client sudah terinstal.

Pertama kita buat folder untuk repo *central dan pastikan sinkron dengan Dropbox (misal folder di komputer saya ~/Dropbox/Projects/Git) kemudian masuk ke folder tersebut.

$ mkdir ~/Dropbox/Projects/Git; cd $_

Lalu kika buat bare repo (repo central) dengan nama bebas, misal repo-dropbox.

$ git init --bare repo-dropbox.git

Sampai tahap ini kita sudah berhasil menyiapkan repostori *central.

Kemudian kita buat folder project baru di luar folder repo *central tadi, misalnya di user home (~/) dan nama folder project-git-saya lalu masuk ke folder tersebut.

$ mkdir ~/project-git-saya; cd $_;

Buat file baru (bebas) dan lakukan inisialisasi Git.

$ touch code-saya.js; git init

Tambahkan file tersebut ke indeks.

$ git add code-saya.js

Lakukan komit.

$ git commit -m "Komit pertama"

Link-kan project tersebut dan push ke repo *central yang sudah kita buat.

$ git remote add origin ~/Dropbox/Projects/Git/repo-dropbox.git
$ git push -u origin master

Perintah me-link-kan dan push di atas mirip ketika kita menggunakan Github hanya berbeda URLnya saja. Berlaku juga saat melakukan clone.

Selesai, private Git repostori (*central) sudah berhasil kita buat. Jika bekerja dengan tim kita bisa kolaborasi dan berbagi folder repo *central tersebut dengan anggota tim melalui layanan Dropbox.

Supaya lebih mudah saat membuat repo *central, kita buat Bash function sederhana untuk menjalankan perintah tersebut. Buat file dengan nama bebas misal .my_scripts.sh, simpan di folder home (atau dimana saja asal bisa diakses). Lalu isi dengan script ini:

#!/bin/bash

# Deklarasi global variabel path folder repo central
_gitdbx="$HOME/Dropbox/Projects/Git"

# Membuat repo central dengan satu argumen untuk nama repo
# xcgr singkatan dari X-Create-Git-Repository
function xcgr {
  
  # Cek jika argumen (pertama) tidak kosong
  if [ ! -z $1 ]; then
    
    # Buat repo bare pada folder repo central dengan nama dari nilai argumen
    git init --bare $_gitdbx/$1.git
    
    # Cek nilai return dari perintah git
    if [ $? -ne 0 ]; then

      # Peringatan jika terjadi kesalahan saat eksekusi perintah
      printf "\033[1;31mTerjadi kesalahan!\n\033[0m"
    else

      # Berhasil
      echo "Repositori berhasil dibuat!"
    fi
  else
    
    # Peringatan (cetak merah) jika tidak ada argumen
    printf "\033[1;31mHarap ketik nama repository! Contoh: xcgr project-belajar\n\033[0m"
  fi
}

Nama function xcgr tersebut bisa diganti dengan nama bebas sesuai selera dan pastikan nama function tersebut belum digunakan oleh script atau program lain.

Gambar2-Commmand Not Found

Simpan lalu untuk mengaktifkan script tersebut, edit file .bashrc tambahkan script ini di paling bawah:

source ~/.my_scripts.sh

Buka ulang terminal lalu coba buat repo baru dengan perintah:

$ xcgr project-baru
#output: Repositori berhasil dibuat!

Jika tidak ada kesalahan maka repo central dengan nama project-baru akan berhasil dibuat. Saat me-link-kan project kita bisa memanfaatkan global variable yang ada di script tersebut.

$ git remote add origin $_gitdbx/project-baru.git

Perintah xcgr ini dapat dieksekusi dari direktori manapun melalui terminal. Selain Dropbox, cara ini mungkin juga berlaku untuk online file storage lainnya seperti Google Drive, NextCloud, dll. Silakan dicoba sendiri.

Demikian, semoga bermanfaat.


Referensi: Git Docs.