Rezha Julio

Hi!
My name is Rezha Julio
I am a chemist graduate from Bandung Institute of Technology. Currently working as Data Engineer at Traveloka.
You can reach me by email:

contact@rezhajulio.id

, @ Q Q

Powered by Hugo

filter by tags

Add Autocorrect to Git

time to read 1 min | 70 words

If you want git to correct typos you can set help.autocorrect:

$ git config --global help.autocorrect 30

You set help.autocorrect to an integer representing the time you have to change your mind before git executes the command (1 = 0.1 seconds).

For example:

$ git comit
WARNING: You called a git command 
named 'comit', which does not exist.
Continuing under the assumption that 
you meant 'commit'
in 3 seconds automatically...

Do Git Pull When Git Push Failed

time to read 1 min | 156 words

Don’t you hate it when you’re gonna push your code to git repository and find out someone just push earlier and you must do git pull and re-push again ?

I made a simple and dumb bash script to do a git pull when git push is failed because you need to git pull first. Well, this is the script.

git push
if [ $? -eq 0 ]
then
    echo "DONE PUSHING"
else
    echo ""
    echo "OH SHIT. SOMEBODY ALREADY PUSH TO REPO"
    echo ""
    git pull
    if [ $? -eq 0 ]
    then
        echo ""
        echo "DONE PULLING. LETS RE-PUSH THAT CODE"
        echo ""
        git push
    else
        echo ""
        echo "OH NO! THERE'S SOME MERGE CONFLICT. FIX IT FIRST!"
        echo ""
    fi
fi

On linux you could just make some alias to run the script. On windows and using CMDER, just edit the aliases file and add gp=sh "path/to/your/file.sh"

I hope you find it helpful.

Using Git Like A Boss

time to read 3 min | 512 words

Kalau kamu belum menggunakannya sekarang, kamu harus mulai menggunakan version control segera. Saya gak akan membahas topik ini, karena sudah cukup banyak bahan bacaan bagus yang menjelaskan alasan dibalik statement tersebut.

Topik yang ingin saya bicarakan kali ini adalah tentang "bossing your Git", dan mengapa hal ini cukup penting.

Kalau kamu masih menghindar untuk memahami arsitektur dibalik version control ini, kemumgkinan besar kamu belum mempergunakan git dengan kemampuan sepenuhnya.

Topik ini bukan tentang "Kalau kamu gak pake CLI, kamu belum melakukannya dengan benar". Silahkan saja menggunakan GUI, karena saya juga dahulu menggunakan GUI (ketika masih menggunakan version control SVN dengan Tortoise SVN, dan sekarang menggunakan git). Terkadang saya menggunakan gitk untuk melihat apa yang telah saya kerjakan dalam perspektif yang lebih luas.

Topik ini adalah apa yang terjadi ketika kamu memencet tombol Sync di GUI kamu. Sehingga ketika terjadi sesuatu yang tidak diduga, kamu dapat memiliki perkiraan apa penyebab permasalahan tersebut dan dapat menyelesaikannya, dan atau bertanya kepada yang lebih tahu.

Sebagian pengguna version control adalah frontend developer atau web designer yang merupakan orang yang sangat "visual" dalam artian senang menggunakan sesuatu yang memiliki tampilan indah. Ini bukan kritik atau larangan, tapi saya tidak melihat alasan untuk tidak memahami version controlnya sendiri. Kamu tidak perlu tahu semuanya, tapi pemahaman sederhana ketika mengeksekusi perintah merupakan kunci untuk menggunakan tools yang kamu gunakan saat ini dengan lebih baik lagi.

Sebagian besar Git GUI memiliki fungsionalitas seperti commit, browsing log, melihat differensial, dll. Permasalahan dimulai ketika

  • Kamu mulai bekerja dengan banyak branch, tag, dan remote.
  • Tim kamu mulai bekerja dengan berbagai perintah git yang cukup rumit yang tidak tersedia di GUI kamu.
  • Kamu atau orang lain membuat kesalahan.

Ketika terjadi kecelakaan, recovery oleh aplikasi GUI umumnya kurang baik. Bagi mereka yang tidak memahami version controlnya, mereka menganggap pekerjaan mereka telah hilang dan mulai panik. Jika mereka menggunakan Git atau version control modern lainnya, sangatlah sulit untuk kehilangan hasil yang telah dikerjakan, asalkan sudah pernah di-commit dan index file tidak rusak.

Menurut saya Git-CLI adalah cara termudah untuk melakukan pekerjaan ini. GUI membungkus beberapa proses dalam 1 tombol, jika salah satu proses tidak berjalan dengan baik, akan sangat sulit untuk merecovery nya. Bagi user awam yang menghindari CLI, ini akan melukai ekspektasi yang mereka harapkan dari aplikasi GUI itu sendiri.

Git CLI dan GUI sebenarnya sama-sama client Git. Keduanya memproses index file yang sama, dan juga memiliki fitur umum yang sama. Walau pada akhirnya CLI memiliki fitur yang lebih banyak dibandingkan GUI.

Akan tetapi saya sendiri tidak terkejut ketika banyak orang lebih memilih GUI dan menghindari CLI. Hingga post ini ditulis, sudah ada 146 perintah di Git CLI. Apakah git GUI sudah memiliki perintah sebanyak itu ? Walau kemampuan menggunakan git saya tidak seahli Linus Torvalds sang pencipta Git, saya menimbang diri saya cukup mahir dalam menggunakan git. Setidaknya saya mampu menggunakan 20 perintah diluar kepala, untuk pekerjaan saya sehari-hari. Yang terpenting adalah memahami bagaimana distributed version control, staging, committing, pushing, pulling, merging dan rebasing bekerja, sisanya cukup mudah untuk dipahami.

Bahan bacaan yang saya anjurkan:

RECENT SERIES

  1. java 101 (13):
    Apr 29, 2017 - Translating Scanner tokens into primitive types
  2. python data structure (5):
    May 03, 2017 - Enhance your tuples
  3. python function (2):
    Apr 16, 2017 - Lambda Functions in Python
  4. python generator (4):
    Apr 26, 2017 - Next, Function or Method ?

Friends of Rezha