Workflow Secara Sederhana
- Buka repository di IDE. Kalau download dari github, bisa dengan clone (
git clone <url-repository>) - Lakukan hal yang diinginkan (tambah/edit/hapus file)
- Masukkan file ke staging area (
git add .), lalu commit (git commit -m "<Pesan perubahan>"). Kalau mau langsung, bisa gunakan (git commit -am "<Pesan perubahan>") - Push ke repository (
git push origin <nama-branch>)
- Remote = repository yang ada di server GitHub
- Origin = nama default remote repository
Berikut merupakan beberapa command penting untuk memahami workflow dasar github
Useful Command
git status= menampilkan status dari repositorygit branch= menampilkan daftar branchgit branch -a= menampilkan daftar branch (termasuk di remote), perlu karena saat clone, hanya branch main yang terdownload, gunakan checkout untuk download sekaligus pindahgit log= menampilkan informasi commit yang telah dilakukan
Membuat Repository Baru
git init= membuat local repositorygit clone <url-repository>= clone repository dari github
Menambahkan File ke Staging Area
git add <nama-file>= file ditambahkan ke staging area (tempat sementara sebelum file dicommit)git add .= menambahkan semua file ke staging area
Commit Perubahan
git commit -m "<Pesan perubahan>"= perubahan yang ada akan disimpan, -m berfungsi sebagai pesan dari perubahangit commit -am "<Pesan perubahan>"= apabila belum di add, -am akan sekaligus mengadd
Push ke Remote Repository
git push origin <nama-branch>= perubahan akan dipush ke dalam repository github
Membuat dan Pindah Branch
git -b <nama-branch>= membuat branch barugit checkout <nama-branch>= pindah branchgit checkout -b <nama-branch>= membuat branch baru, sekaligus pindah
Update Clone Repository
git fetch origin= mengambil (fetch) update terbaru dari remote repositorygit fetch origin <nama-branch>= sama, tapi lebih spesifikgit merge origin/<nama-branch>= setelah fetch, baru di merge dia akan menggabungkannya ke branch lokalgit pull origin <nama-branch>= gabungan fetch dan merge
Log Commit
git log -<Berapa jumlah commit terakhir>= menampilkan informasi commit sebanyak yang diinginkan, dari yang terbarugit log <nama-file>= menampilkan informasi commit file tertentugit log --since='Month Day Year'= menampilkan informasi commit dari waktu yang diinginkangit log --until='Month Day Year'= menampilkan informasi commit sampai waktu yang diinginkangit show <8-10 hash pertama>= menampilkan detail dari commit (tags, trees, blobs)
Membandingkan Version File
git diff <nama-file>= menampilkan perbedaan antara version file yang terakhir di-commit dan version modified (belum di-add)git diff --staged <nama-file>= menampilkan perbedaan antara version file yang terakhir di-commit dan version staging areagit diff <8-10 hash pertama> <8-10 hash pertama>= menampilkan perbedaan antara 2 file yang sudah di-commitgit diff HEAD~1 HEAD= menampilkan perbedaan antara 2 file terakhir yang sudah di-commit (HEAD = commit terakhir)
Reverting dan Restoring File
git revert HEAD= mengembalikan commit terakhir dan langsung mencommitnya (membuka text editor untuk memberikan message)git revert --no-edit HEAD= mengembalikan tanpa membuka text editor dan langsung mencommitnyagit revert -n HEAD= mengembalikan tanpa mencommitnya (ada di stage area)git checkout HEAD~1 -- <nama-file>= mengembalikan hanya satu file saja dari commit terkahirgit restore --staged= menghapus semua file dari staging areagit restore --staged <nama-file>= menghapus hanya satu file saja dari staging area