author Ahmad Muhardian

Tutorial Git #9: Bekerja dengan Remote Repositori


Pada proyek pengembangan software yang melibatkan banyak orang (tim), kita tidak hanya akan menyimpan sendiri repository proyeknya.

Semua tim yang terlibat dalam pengkodean (coding) akan menyimpan repository lokal di komputernya masing-masing.

Setelah itu, akan dilakukan penggabungan ke repository inti atau remote.

Biasanya akan ada repository pusat atau untuk menyimpan source code yang sudah digabungkan (merge) dari beberapa orang.

Kolaborasi dengan Git

Di mana nyimpan repository remote-nya?

Bisa di server kantor atau bisa juga menggunakan layanan seperti Github, Gitlab, Bitbucket, dll.

Github adalah layanan yang paling populer untuk menyimpan (hosting) repository secara remote. Banyak proyek open source tersimpan di sana.

Kita akan menggunakan Github pada tutorial ini, pastikan kamu sudah memiliki akun Github.

Membuat Repository di Github

Silahkan buka Github, kemudian buat sebuah repository dengan nama belajar-git seperti berikut ini.

Membuat Repository di Github

Maka sekarang kita punya repository kosong di Github.

Repository Kosong di Github

Jangan diapa-apakan dulu.

Silahkan buka kembali repository lokal yang pernah kita buat, yaitu project-01.

Kita akan upload ke Github.

Menambahkan dan Menghapus Remote

Sebelum kita bisa upload semua revisi yang ada di repository lokal, kita harus menambahkan remote-nya terlebih dahulu.

Remote dapat kita tambahkan dengan perintah seperti ini:

Perintah untuk menambahkan remote repository

Ada dua pilihan URL remote yang bisa kita berikan:

Melalui HTTPS:

https://github.com/petanikode/belajar-git.git

dan melalui SSH:

[email protected]:petanikode/belajar-git.git

Apa bedanya?

Kalau kita menggunakan HTTPS, maka kita akan diminta password setiap kali melakukan push.

Sedangkan yang menggunakan SSH, kita tidak akan diminta password. Namun, kita harus melakukan konfigurasi SSH Key terlebih dahulu.

Saya lebih suka yang menggunakan SSH.

Maka perintah untuk menambahkan remotenya akan menjadi seperti ini:

git remote add github [email protected]:petanikode/belajar-git.git

Setelah itu, silahkan ketik perintah git remote -v untuk melihat remote apa saja yang sudah ditambahkan.

melihat remote di repository

Bagus, sekarang kita sudah menambahkan remote di dalam repository lokal.

Selanjutnya kita bisa melakukan push atau mengirim revisi ke repository remote (Github).

Nah untuk menghapus dan mengubah nama remote dapat dilakukan dengan perintah berikut:

Ubah nama remote:

git remote rename github kantor

Keterangan:

  • github adalah nama lama
  • kantor adalah nama baru

Hapus remote:

git remote remove github

keterangan:

  • github adalah nama remote yang akan dihapus.

Mengirim Revisi ke Remote Repository

Perintah yang kita gunakan untuk mengirim revisi ke repository remote adalah git push.

git push github master

Keterangan:

  • github adalah nama remote.
  • master adalah nama cabang tujuan.

Mari kita coba…

Pastikan repository lokal kita sudah memiliki remote.

melihat remote di repository

Setelah itu lakukan beberpa revisi atau commit.

git add .
git commit -m "menambahkan beberapa revisi"

Sebagai contoh, saya memiliki 5 catatan revisi.

catatan revisi di repository lokal

Maka tinggal kita kirim saja dengan perintah git push github master.

Jika muncul seperti ini, artinya push sukses dilakukan.

Melakukan push ke repository remote

Sekarang lihat ke Github, pasti semuanya sudah ter-upload ke sana.

repository remote di Github

Mudah bukan?

Biar mantap, coba buat revisi lagi di file index.html.

Misalnya perubahannya seperti ini:

Perubahan baru di repository lokal

Lalu lakukan commit dan push.

git add index.html
git commit -m "mengubah judul dan teks di body"
git push github master

Jika berhasil, maka akan tampil seperti ini.

Push ke-2

Periksa kembali repository di Github dan perhatikanlah perubahanya.

hasil Push ke-2

Jika ktia klik commit terakhir, maka kita akan dibawa ke git diff-nya Github.

Di sana kita bisa melihat perubahan apa saya yang dilakukan pada commit tersebut.

Perubahan yang dilakukan

Mengambil Revisi dari Remote Repository

Saat kita bekerja dengan repository yang memiliki banyak kontributor, kita seharusnya mengambil dulu revisi terbaru dari repository inti agar tidak bentrok.

Misalnya begini.

Pada repository remote ada kontributor lain yang sudah menambahkan dan merubah sesuatu di sana.

Mengambil revisi dari repository remote

Maka kita harus mengambil perubahan tersebut, agar repository lokal kita tetap ter-update atau sama persis seperti repository remote.

Ada dua perintah untuk mengambil revisi dari repository remote:

  1. git fetch [nama remote] [nama cabang]
  2. git pull [nama remote] [nama cabang]

Apa perbedaanya?

Perintah git fetch hanya akan mengambil revisi (commit) saja dan tidak langsung melakukan penggabungan (merge) terhadap repository lokal.

Sedangkan git pull akan mengambil revisi (commit) dan langsung melakukan penggabungan (merge) terhadap repository lokal.

Terus kita harus pakai yang mana?

Tergantung dari situasi dan kondisi.

Bila kita sudah membuat perubahan di repository lokal, maka sebaiknya menggunakan git fetch agar perubahan yang kita lakukan tidak hilang.

Namun, bila kita tidak pernah melakukan perubahan apapun dan ingin mengambil versi terakhir dari repository remote, maka gunakanlah git pull.

Mengambil Revisi dengan git fetch

Baiklah, sekarang mari kita coba praktekkan.

Silahkan buka github, dan tambahkan file README.md melalui Github.

Klik tombol add README.

Menambahkan file README

Setelah itu, isilah file RAEDME.md dengan apapun yang kamu inginkan.

Sebagai contoh, saya mengisinya seperti ini:

isi file README

Setelah selesai, simpan perubahan dengan melakukan commit langsung dari Github.

commit file README

Pesan commit bersifat opsional, boleh di isi boleh tidak. Karena Github akan membuatkannya secara otomatis.

Sekarang ada perubahan baru di repository remote dan kita akan mengambil perubahan tersebut.

Mari kita lakukan dengan perintah git fetch.

git fetch

Revisi sudah diambil, tapi belum ada file README.md di dalam repository lokal.

Kenapa bisa begitu?

Ya, balik lagi dari pengertian git fetch. Dia hanya bertugas mengambil revisi saja dan tidak langsung menggabungkannya dengan repository lokal.

Coba kita cek dengan git log.

git log remote

Pada gambar di atas terlihat perbedaan log antara repository lokal dengan repository remote.

Bila ingin mengecek apa saja perbedaannya, coba gunakan perintah git diff.

git diff master github/master

Keterangan:

  • master adalah cabang master di repository lokal.
  • github/master adalah cabang master di repository remote.

Hasil outputnya kira-kira akan seperti ini:

diff --git a/README.md b/README.md
new file mode 100644
index 0000000..1174eb2
--- /dev/null
+++ b/README.md
@@ -0,0 +1,18 @@
+# belajar-git
+
+Repository ini adalah repository untuk belajar Git. Silahkan baca materi tentang [git remote di Petani Kode](https://www.petanikode.com/git-remote).
+
+Atau mulai belajar Git dari awal:
+
+- [Tutorial Git 01 - Instalasi Git dan Perisiapan Awal](https://www.petanikode.com/git-install/)
+- [Tutorial Git 02 - Membuat Repositori Git](https://www.petanikode.com/git-init/)
+- [Tutorial Git 03 - Membuat Revisi](https://www.petanikode.com/git-commit/)
+- [Tutorial Git 04 - Melihat Catatan Log Revisi Git](https://www.petanikode.com/git-log/)
+- [Tutorial Git 05 - Melihat Perbandingan Revisi Git](https://www.petanikode.com/git-diff/)
+- [Tutorial Git 06 - Membatalkan Revisi Git](https://www.petanikode.com/git-membatalkan-revisi/)
+- [Tutorial Git 07 - Percabangan](https://www.petanikode.com/git-branch/)
+- [Tutorial Git 08 - Perbedaan Git Checkout, Git Reset, dan Git Revert](https://www.petanikode.com/git-checkout-reset-revert/)
+- Tutorial Git 09 - Menulis Ulang Sejarah
+- [Tutorial Git 10 - Bekerja dengan Remote Repositori](https://www.petanikode.com/git-remote/)
+- Tutorial Git 11 - Git Tag
+- ...

Lalu sekarang bagaimana cara kita menggabungkan commit dari repository remote dengan lokal?

Gunakan perintah git merge.

git merge master github/master

Setelah itu coba ketik ls dan git log lagi…

penggabungan repository remote dengan lokal

Kita sudah berhasil menggabungkan revisi dari remote dan lokal. 🎉

Mengambil Revisi dengan git pull

Lakukan hal yang sama seperti tadi.

Kali ini kita akan membuat file baru bernama register.html melalui Github.

Menambahkan file baru di Github

Berikan nama file dengan register.html dan isi dengan apa saja.

Isi file register

Simpan revisi dan tambahkan persan commit seperti ini.

Commit register.html

Sekarang ada perubahan baru di repository remote dan kita akan mengambilnya dengan perintah git pull.

Silahkan buka repository lokal dan ketik perintah berikut:

git pull github master

Maka semua revisi akan diambil dan langsung digabungkan (merge).

git pull

Clone Remote Repository

Clone repository bisa kita bilang seperti copy repository dari remote ke lokal.

Perintah untuk melakukan clone adalah git clone.

git clone https://github.com/petanikode/belajar-git.git [nama dir]

Keterangan:

  • https://... adalah URL repository remote, kita juga bisa menggunakan SSH.
  • [nama dir] (opsional) adalah nama direktory yang akan dibuat. Jika kita tidak berikan nama direktori, maka akan otomatis menggunakan nama repository.

Mari kita coba…

Sekarang saya akan pindah ke Desktop.

cd ~/Desktop

Setelah itu melakukan clone di sana.

git clone [email protected]:petanikode/belajar-git.git

Maka akan ada direktori baru di sana.

Clone repository

FYI: Saat kalian clone sebuah repository dari Github, nama remote origin akan diberikan secara otomatis

Clone repository log

Apa Selanjutnya?

Kita sudah belajar beberapa perintah untuk bekerja pada remote repository, diantaranya git remote, git fetch, git pull, git clone, dll.

Semua perintah itu kita perlukan saat berkolaborasi dengan tim di proyek open source maupun closed source.

Apa selanjutnya?

Selanjutnya silahkan banyak-banyak latihan dan sering-sering menggunakannya tiap hari agar terbiasa.

Terima kasih sudah mengikuti tutorial ini sampai akhir. Kalau ada saran dan pertanyaan, jangan sungkan-sungkan untuk berkomentar.

Baca Juga ini

Kumpulan 101+ Link Repositori dan Komunitas Open-source Indonesia di Github

Kumpulan 101+ Link Repositori dan Komunitas Open-source Indonesia di Github

Pada hasil pubilkasi Octoverse 2016, Indonesia masuk peringkat ke-2 dalam kategori negara dengan peningkatan pendaftar baru paling banyak di Github. Ke manakah mereka? Sebagian ada yang aktif berkontribusi pada proyek open-source, sebagian lagi ada yang membentuk organisasi/komunitas di Github. Berikut ini daftar link komunitas dan repositori Github Indonesia yang diambil dari repositori Awesome Indonesia Repo dan beberapa sumber lainnya. Komunitas Github Indonesia Komunitas Git Indonesia PHP Indonesia CodeIgniter Indonesia Laravel Indonesia Id-Laravel Symfonian Indonesia Komunitas Pengguna Go Indonesia Python Indonesia Jakarta JavaScript User Group Bali JavaScript Community React JS Indonesia Nginx Indonesia Asosiasi Programmer Indonesia Django Indonesia Haskell Indonesia Indonesian Ruby Community Kotlin Indonesia JUG Indonesia IDDevOps JVMDeveloperID Hugo Indonesia Lombok Dev Linux Developer Indonesia BlankOn XentaOS Repositori Github IndonesiaAndroid Android StepsView - A simple progress steps view on Android.

Tutorial Git #8: Perbedaan Git checkout, Git Reset, dan Git Revert

Tutorial Git #8: Perbedaan Git checkout, Git Reset, dan Git Revert

Pada tutorial ke-6, kita sudah mebahas cara membatalkan revisi menggunakan perintah git checkout, git reset, dan git revert. Sekilas, tiga perintah tersebut melakukan hal yang sama. Akan tetapi ada perbedaanya. Apa itu? Mari kita bahas… Git CheckoutPerintah git checkout seperti mesin waktu, kita bisa kembalikan kondisi file proyek seperti waktu yang dituju. Misalnya: git checkout 06f735af7724558164c87f6b1ce3ca7778eb1c1b Maka semua file akan dikembalikan seperti keadaan pada nomer commit tersebut. Akan tetapi, ini bersifat temporer (sementara).

Tutorial Git #7: Menggunakan Percabangan untuk Mencegah Konflik

Tutorial Git #7: Menggunakan Percabangan untuk Mencegah Konflik

Bayangkan anda sedang bekerja dengan tim pada suatu repositori Git. Repositori ini dikerjakan secara bersama-sama. Kadang… akan terjadi konflik, karena kode yang kita tulis berbeda dengan yang lain. Misalnya, Si A menulis kode untuk fitur X dengan algoritma yang ia ketahui. Sedangkan si B menulis dengan algoritma yang berbeda. Lalu mereka melakukan commit, dan kode sumber jadi berantakan. Anggota tim yang lain menjadi pusing. Agar tidak terjadi hal yang seperti ini, kita harus membuat cabang (branch) tersendiri.

Tutorial Git #6: Perintah untuk Membatalkan Revisi

Tutorial Git #6: Perintah untuk Membatalkan Revisi

Pada tutorial git 05, kita sudah belajar cara melihat perbedaan di setiap revisi. Sekarang kita akan belajar, cara membatalkan sebuah revisi. Terkadang pada perubahan yang kita lakukan terjadi kesalahan dan kita ingin mengembalikannya seperti keadaan sebelumnya. Maka kita perlu menyuruh git untuk megembalikannya. Ada beberapa perintah yang digunakan diantaranya: git checkout, git reset, dan git revert. Membatalkan PerubahanJika revisi kita belum staged ataupun committed, kita bisa mengembalikannya menggunakan perintah git checkout nama_file.

Tutorial Git #5: Melihat Perbandingan Revisi dengan Git Diff

Tutorial Git #5: Melihat Perbandingan Revisi dengan Git Diff

Pada tutorial sebelumnya, kita sudah belajar cara melihat log revisi di repositori. Sekarang kita kan peljari perintah git diff, fungsinya untuk melihat perbedaan perubahan di revisi. Melihat Perbandingan Perubahan yang Dilakukan pada RevisiGunakan perintah berikut ini untuk melihat perubahan yang dilakukan pada revisi tertentu. git diff cf08ca0837cf26f1c595be36bb3a6b815e311be1 cf08ca0837cf26f1c595be36bb3a6b815e311be1 adalah nomer revisi yang ingin dilihat. Lihatlah hasil di atas, simbol plus (+) artinya kode yang ditambahkan.

Bahaya! Password dan Token API Bisa Dicuri dengan Sangat Mudah di Github

Bahaya! Password dan Token API Bisa Dicuri dengan Sangat Mudah di Github

Tidak perlu kemampuan khusus, tidak pelu tools yang canggih, hanya bermodal kata kunci, kita sudah bisa mencuri password dan token API di Github. Teknik ini mirip seperti Google Dork. Peringatan: Tulisan ini bukan untuk mengajarkan anda menjadi pencuri dan melakukan perusakan, melainkan untuk berbagi pengetahuan. Agar developer semakin teliti dan berhati-hati dalam melakukan commit. Password dan Token API dalam KodeBayangkan kita lagi mengerjakan proyek web dengan PHP.