Pemakaian Git Sehari-hari

Pada artikel ini, kita akan mengulas secara singkat perintah-perintah yang sering kita gunakan dalam Git. Tapi sebelum mulai, perlu kita pahami beberapa istilah sebagai berikut:
  • diff : perbedaan antara satu file dengan file lain biasanya diff dilakukan terhadap satu file yang sudah berubah isinya
  • changeset : kumpulan diff
  • working folder : folder kerja kita, berisi file yang (mungkin) sudah berubah sejak commit terakhir
  • staging : tempat persiapan changeset yang akan dicommit
  • commit : snapshot dari posisi folder dan file pada waktu tertentu
  • tip : commit paling ujung
  • head : nama lain tip
  • branch : head yang diberi nama
  • HEAD : head yang sedang aktif
  • merge : menggabungkan lebih dari satu commit

Membuat Repository

Untuk bisa mulai bekerja, kita harus memiliki repository dulu. Ada dua kemungkinan, kita membuat repository baru, atau kita membuat clone dari repository yang sudah ada.
KeteranganPerintah
membuat repository barugit init
membuat repository baru di folder project-barugit init project-baru
membuat repository untuk disharegit init –bare project-baru
copy repository laingit clone repo-url
pilihan format URL
file:///path/ke/repo : clone dari folder lokal
/path/ke/repo : clone dari folder lokal, menggunakan hard link
http://server/path/ke/repo : clone melalui protokol http
username@server:path/ke/repo : clone melalui protokol ssh

Bekerja dengan Git

Berikut ini adalah perintah yang dilakukan selama sesi coding.
KeteranganPerintah
Menambah file barugit add namafile
Menghapus filegit rm namafile
Memasukkan perubahan di satu file ke staging areagit add namafile
memasukkan semua perubahangit add .
memilih potongan kode yang akan dimasukkangit add -p
memasukkan perubahan ke staging menggunakan menugit add -i
melihat status perubahan file, mana yang masih di working dan mana yang sudah di staginggit status
mengeluarkan perubahan dari staging areagit reset – namafile
melihat perubahan yang belum dimasukkan ke staging areagit diff
melihat perubahan yang akan dicommit (sudah ada di staging area)git diff –staged
melihat perubahan antara working folder dan commit terakhirgit diff HEAD
melihat file mana saja yang berubahgit diff –name-status abc123..def456
melakukan commit, editor akan diaktifkan untuk mengisi keterangangit commit
melakukan commit, langsung mengisi keterangangit commit -m “langsung isi keterangan di sini”
commit langsung semua perubahan, tanpa melalui staginggit commit -a
melihat commit historygit log
log lima commit terakhirgit log -5
log hanya menampilkan summarygit log –oneline
tampilkan commit summary dari semua branch dengan graph hubungan antar commitgit log –oneline –all –graph
membuat commit baru yang berkebalikan dengan (undo) commit terakhirgit revert HEAD
undo 2 commit terakhirgit revert HEAD~2
memindahkan HEAD ke commit-id yang diminta, staging disamakan dengan HEAD, working tetap seperti semula.
Ini adalah opsi defaultnya reset | git reset –mixed memindahkan HEAD ke commit-id yang diminta, isi working dan staging disamakan dengan commit-id tersebut | git reset –hard commit-id memindahkan HEAD ke commit-id yang diminta, staging dan working tidak disentuh. Tidak mengubah output git status | git reset –soft membuat working dan staging sama dengan HEAD | git reset –hard

Bekerja paralel menggunakan branch

Branch memungkinkan kita bekerja secara paralel, misalnya ada tim yang menambah fitur, dan ada tim yang melakukan bug fix.
KeteranganPerintah
membuat branch barugit branch namabranch
pindah ke branch tersebutgit checkout namabranch
bikin branch sambil pindahgit checkout -b namabranch
membuat tracking branch untuk branch bugfix di origingit checkout –track origin/bugfix
membuat tracking branch dengan nama berbeda dengan remotegit checkout -b myfix origin/bugfix
membandingkan branch satu dengan lainnyagit diff master..fitur-xx
membandingkan branch dengan titik awal branch tersebutgit diff master…fitur-xx
menggabungkan branch satu dengan lainnyagit checkout branch-tujuan
git merge branch-yang-mau-diambil
Mengedit konflik :
- edit konfliknyagit add namafile-yang-konflik
- remove markernyagit commit -m “merge fitur-xxx ke master”
membatalkan merge yang konflikgit reset –hard

Bekerja dengan remote

Interaksi dengan remote repository
KeteranganPerintah
mendaftarkan remote repositorygit remote add namaremote url
melihat daftar remote repositorygit remote -v
menghapus remote repositorygit remote rm namaremote
mengambil perubahan di remotegit remote update
mengambil perubahan di satu remote sajagit remote update namaremote
mengambil perubahan di remote, hapus branch di lokal yang sudah tidak ada di remotegit remote update –prune
mengambil perubahan sesuai refspec yang sudah dikonfigurasigit fetch namaremote
mengambil perubahan kemudian dimerge ke branch lokal yang sesuaipull = fetch + merge
git pull namaremote
mengirim perubahan di lokal ke remotegit push nama-remote nama-branch-lokal:nama-branch-remote
mengirim perubahan di lokal ke remote, semua branch yang namanya bersesuaian akan dikirimgit push nama-remote
mengirim perubahan di branch lokal yang sedang aktif ke branch di remote dengan nama yang samagit push nama-remote HEAD
menghapus branch di remotegit push nama-remote :nama-branch-remote
Demikianlah perintah-perintah Git yang kita gunakan sehari-hari. Melengkapi daftar perintah di atas, diagram berikut dapat membantu pemahaman kita tentang konsep dan operasi di Git.
Artikel ini berdasarkan dari sini

4 Comments

  1. kalo ingin melihat file yang sudah di post bisa tidak ya ?

    ReplyDelete
  2. ohh bisa, pertama bisa lihat terlebih dahulu commit apa saja yang pernah dilakukan. (git log).

    Kemudian bisa lihat nomor commit yang tertera, kemudian lakukan git diff beserta nomor commit untuk melihat file apa saja yang telah di commit/di post

    Trims~

    ReplyDelete
  3. kalo kita lagi push commit yg sedang berjalan, bisa gak di cancel untuk di hapus push yg terakhir ini?

    ReplyDelete
  4. Ohh untuk meng cancel commit terakhir (sebelum push) bisa menggunakan
    git commit --amend

    jika sudah terlanjur di push maka bisa kita lihat nomor commit dengan mengecek
    git log
    kemudian lihat nomor commit terakhir lalu
    git revert nomor_commit

    Semoga bermanfaat Trimse~

    ReplyDelete