{"id":24807226,"url":"https://github.com/bagusperdanay7/belajar-git-dasar","last_synced_at":"2026-04-17T13:33:14.878Z","repository":{"id":273198459,"uuid":"860332186","full_name":"bagusperdanay7/belajar-git-dasar","owner":"bagusperdanay7","description":"Catatan Materi Git diambil dari YouTube Pak Eko Kurniawan Khennedy (Programmer Zaman Now)","archived":false,"fork":false,"pushed_at":"2025-01-19T11:46:28.000Z","size":32,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-14T03:31:02.208Z","etag":null,"topics":["git","github"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bagusperdanay7.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-20T08:37:26.000Z","updated_at":"2025-01-19T11:46:30.000Z","dependencies_parsed_at":"2025-01-19T12:36:05.480Z","dependency_job_id":null,"html_url":"https://github.com/bagusperdanay7/belajar-git-dasar","commit_stats":null,"previous_names":["bagusperdanay7/belajar-git-dasar"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bagusperdanay7/belajar-git-dasar","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bagusperdanay7%2Fbelajar-git-dasar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bagusperdanay7%2Fbelajar-git-dasar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bagusperdanay7%2Fbelajar-git-dasar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bagusperdanay7%2Fbelajar-git-dasar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bagusperdanay7","download_url":"https://codeload.github.com/bagusperdanay7/belajar-git-dasar/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bagusperdanay7%2Fbelajar-git-dasar/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31931481,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-17T12:37:54.787Z","status":"ssl_error","status_checked_at":"2026-04-17T12:37:25.095Z","response_time":62,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["git","github"],"created_at":"2025-01-30T09:17:48.842Z","updated_at":"2026-04-17T13:33:14.857Z","avatar_url":"https://github.com/bagusperdanay7.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tutorial Git | PZN\n\nKode ini merupakan materi Git yang dibawakan oleh **Eko Kurniawan Khannedy** dari channel YouTube **_Programmer Zaman Now_**.\n\nLink Playlist Tutorial:\n\n[![Static Badge](https://img.shields.io/badge/Tutorial_Git-white?style=for-the-badge\u0026logo=youtube\u0026logoColor=%23FF0000)](https://youtube.com/playlist?list=PL-CtdCApEFH_lYGV8hxqjtKmFA_xeLupq\u0026si=1W1FVpi0y89SHqua)\n\nBahasan Materi Meliputi:\n\n- Pengenalan Version Control\n- Git\n- Configuration\n- Repository\n- Workflow\n- Hash\n- Menambah File\n- Mengubah File\n- Menghapus File\n- Membatalkan Perubahan\n- Commit Log\n- Compare Commit\n- Rename File\n- Reset Commit\n- Amend Commit\n- Versi Sebelumnya\n- Snapshot Sebelumnya\n- Revert Commit\n- Ignore\n- Blame\n- Alias\n- Branch\n- Multiple Branch\n- Merge\n- Merge Conflict\n- Cherry Pick\n- Tag\n- Git Remote\n- Git Server\n- Git Server Repository\n- SSH\n- Remote Repository\n- Push\n- Clone\n- Remote Branch\n\n## Technology stack \u0026 Tools\n\n**Program ini membutuhkan:**\n\n| Tech Stack \u0026 Tools | Version |\n| ------------------ | ------- |\n| Git                | 2.30+   |\n| Visual Studio Code | Latest  |\n\n## Catatan Pribadi\n\nJika ingin klona di komputer lain. Taruh di direktori berikut:\n\n```text\n.\n├── Course\n│   ├── Programmer Zaman Now\n|   |   ├── GIT\n|   |   └── ...\n|   └── ...\n└── ...\n```\n\nJika sudah di berada di folder **GIT**, baru clone.\n\n```shell\ngit clone https://github.com/bagusperdanay7/belajar-git-dasar.git\n```\n\n# Notes\n\nIni merupakan catatan pribadi mengenai materi dari **Git** dengan Pak _Eko Kurniawan Khannedy_.\n\n## Git Configuration\n\n```shell\ngit config --global user.name \"Bagus Perdana Yusuf\"\ngit config --global user.email \"baguspyus@gmail.com\"\n```\n\n## Inisialisasi Project Git\n\n```shell\ngit init\n```\n\n## Melihat Status\n\n```shell\ngit status\n```\n\n## Menambah file\n\n```shell\ngit add nama_file\n```\n\n## Commit ke Repository\n\n```shell\ngit commit -m \"MASUKKAN PESAN COMMIT\"\n```\n\n## Melihat Perubahan Git\n\n```shell\ngit diff\n```\n\n## Membatalkan Penambahan File\n\n```shell\ngit clean -f\n```\n\n## Membatalkan Perubahan File\n\n```shell\ngit restore namafile\n```\n\n## Membatalkan Penghapusan File\n\n```shell\ngit restore namafile\n```\n\n## Membatalkan dari Staging Index\n\nKarena git restore hanya bisa dilakukan untuk membatalkan perubahan yang terjadi di **Working Directory**. Kita menggunakan `--staged` untuk mengembalikan posisi dari **staging index** ke **working directory**.\n\n```shell\ngit restore --staged namafile\n```\n\n## Melihat Commit Log\n\n### Default Commit\n\n```shell\ngit log\n```\n\n### Log Sederhana\n\nJika Ingin menampilkan tampilan log yang sederhana, gunakan `--oneline`.\n\n```shell\ngit log --oneline\n```\n\n### Graph\n\nGraph fungsinya untuk melihat hubungan commit log satu dengan sebelumnya.\n\n```shell\ngit log --oneline --graph\n```\n\n### Detail Commit\n\n`hash` diisi dengan hash dari commit yang dipilih.\n\n```shell\ngit show hash\n```\n\n## Compare Commit\n\n`hash1`, dan `hash2` adalah commit hash yang berbeda. Jadi membandingkan commit satu dengan commit lainnya.\n\n```shell\ngit diff hash1 hash2\n```\n\n### Difftool\n\nHarus sesuai configuration tool yang digunakan. Contoh VS Code.\n\n```shell\ngit difftool hash1 hash2\n```\n\n## Reset Commit\n\nJika ingin membatalkan perubahan yang telah dicommit ke Repository, bisa melakukan reset commit. Mekanismenya menggeser HEAD pointer ke posisi commit yang kita mau. Mode git reset `\u003cmode\u003e` bisa diisi dengan `--soft` atau `--mixed` (default), atau `--hard`. Selama belum membuat commit baru, masih bisa kembali keatas.\n\n- `--soft`, memindahkan HEAD pointer, namun tidak melakukan perubahan apapun di Staging Index dan Working directory.\n- `--mixed`, memindahkan HEAD pointer, mengubah Staging Index menjadi sama seperti Repository, tetapi tidak mengubah apapun di Working directory.\n- `--hard`, memindahkan HEAD pointer, dan mengubah Staging Index \u0026 Working Directory (sama dengan Repository).\n\n```shell\ngit reset \u003cmode\u003e hash\n\ngit reset --soft 3b1000b\ngit reset --mixed 3b1000b\ngit reset --hard 3b1000b\n```\n\n## Amend Commit\n\nAmend commit bisa digunakan ketika ingin menambahkan perubahan yang terlupakan ketika sudah dicommit. Amend akan mengubah hash commit.\n\n```shell\ngit commit --amend -m \"isi commit\"\n```\n\n## Versi Sebelumnya\n\nGit memiliki fitur untuk dapat melihat versi file pada commit sebelumnya, Saat mengambil versi file sebelumnya, file tersebut akan berada di **Staginng Index**.\n\n```shell\ngit checkout hash -- namafile\ngit checkout 3b1000b -- file1.txt\n```\n\n## Snapshot Sebelumnya\n\nGit memiliki fitur seperti mesin waktu, kita bisa kembali ke snapshot sebelumnya.\n\n```shell\ngit checkout hash\n\n# kembali ke awal\ngit checkout namabranch\n```\n\n## Git Branch\n\nUntuk melihat nama branch saat ini, gunakan perintah:\n\n```shell\ngit branch --show-current\n```\n\n### Membuat Branch Baru\n\n```shell\ngit branch namabranch\n```\n\n### Melihat Semua Branch\n\n```shell\ngit branch --list or git branch\n```\n\n### Pindah ke Branch Lain\n\n```shell\ngit switch namabranch\ngit checkout namabranch\n```\n\n### Mengubah nama Branch\n\nJika membuat kesalahan nama branch bisa dilakukan perubahan, namun pindah dahulu ke branch yang ingin kita rubah namanya. Setelah pindah baru lakukan commit:\n\n```shell\ngit branch -m namabranchbaru\n```\n\n### Menghapus Branch\n\nUntuk menghapus, keluar dari branch tersebut terlebih dahulu\n\n```shell\ngit branch -d namabranch\ngit branch --delete namabranch\n```\n\n## Revert Commit\n\nGit memiliki fitur revert commit, untuk membatalkan commit yang telah dilakukan dengan cara membuat commit baru yang membatalkan commit sebelumnya.\n\n```shell\ngit revert hash\n```\n\n## Git Ignore\n\nJika ingin mengabaikan file atau folder apa saja yang tidak ingin dimasukkan ke repository, buat file `.gitignore` terlebih dahulu dan di dalam file `.gitignore`. Masukkan adapa saja yang ingin diabaikan.\n\n## Blame\n\nBlame adalah fitur di git yang digunakan untuk mencari tahu, siapa yang menambah perubahan serta commitnya.\n\n```shell\ngit blame namafile\n```\n\n## Menambahkan Alias di git\n\nAlias fitur menarik karena kita bisa membuat nama lain dari perintah git.\n\n```shell\ngit config --global alias.ko commit\ngit config --global alias.komit commit\ngit config --global alias.logone \"log --oneline\"\n```\n\n## Merge\n\nMerge adalah proses penggabungan dua buah branch. Untuk melakukan merge, pindah dahulu ke branch dimana lokasi merge akan dilakukan, lalu gunakan perintah:\n\n```shell\ngit merge namabranch\n```\n\nMisalnya ketika saat ini kita berada di merge master, dan ingin merge feature/1, berarti kita merge feature/1 ke dalam master.\n\n### Membatalkan Conflict Merge\n\n```shell\ngit merge --abort\n```\n\n## Cherry Pick\n\nMisal kita ingin mere branch feature/c, namun tidak ingin merge semua perubahan, maka bisa melakukan cherry pick untuk commit perubahannya. Caranya:\n\n```shell\ngit cherry-pick commitId\n```\n\n## SSH\n\nSSH adalah Secure shell yang merupakan protokol jaringan untuk komunikasi jaringan secara aman dan terenkripsi. SSH Key digunakan untuk autentikasi ke server SSH. Untuk membuat SSH Key, kita bisa gunakan perintah:\n\n```shell\nssh-keygen\n```\n\nSetelah mengetikkan perintah di atas, secara otomatis akan terdapat 2 key di komputer lokal kita, yaitu `private key` dan `public key` yang terdapat pada **.ssh** home directory. File `id_rsa` adalah private key, dan `id_rsa_pub` adalah public key.\n\n### Menguji SSH ke Server GitHub\n\n```shell\nssh -T git@github.com\n```\n\n## Git Remote\n\nSecara default, ketika kita membuat git project, git tidak tahu tentang remote repository. Maka kita perlu memberi tahu ke git project yang sudah kita buat tentang lokasi git repository.\n\n### Menambah Remote\n\nUntuk menambah remote repository, gunakan perintah:\n\n```shell\ngit remote add nama ssh-url\n```\n\n### Melihat Remote\n\nUntuk melihat remote repository yang ada di git project gunakan perintah:\n\n```shell\ngit remote\n```\n\nMelihat URL detail remote repository dengan perintah:\n\n```shell\ngit remote get-url nama\n```\n\n### Menghapus Remote Repository\n\n```shell\ngit remote rm nama\n```\n\n## Push\n\nPush digunakan untuk mensinkronisasikan project local dengan remote repository server, untuk mengirim perubahan di local ke git server, gunakan perintah:\n\n```shell\n# Mengirim perubahan branch ke remote dengan nama branch yang sama\ngit push namaremote localbranch\n\n# Contoh\ngit push origin main\n\n# Mengirim perubahan branch ke remote repository dengan nama branch yang berbeda\ngit push namaremote localbranch:remotebranch\n\n# Contoh\ngit push origin main:develop\n```\n\n### Push Semua Branch\n\n```shell\ngit push origin --all\n```\n\n### Push Menghapus Branch\n\n```shell\ngit push --delete namaremote namabranch\n\ngit push --delete origin develop\n\n```\n\n## Clone\n\nClone di git berarti kita unduh project Git yang terdapat di server ke local dan secara otomatis diunduh sebagai git project\n\n```shell\ngit clone urlremoterepository\n\n# Klona dengan nama folder yang berbeda dengan nama remote repostiorynya\ngit clone urlremoterepository namafolder\n```\n\nDefault clone akan berisi remote repository origin ke git remote repository yang kita clone, dan default clone berisi branch utama repository remotenya.\n\n## Referensi\n\n- YouTube TUTORIAL GIT - Programmer Zaman Now\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbagusperdanay7%2Fbelajar-git-dasar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbagusperdanay7%2Fbelajar-git-dasar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbagusperdanay7%2Fbelajar-git-dasar/lists"}