Panduan Git Clone, Add, Commit, Push: Cara Upload Project ke GitHub 2026

Git adalah version control yang melacak setiap perubahan kode. GitHub adalah layanan hosting untuk repository Git. panduan ini akan mengajarkan workflow dasar Git dari nol sampai project kalian nangkring di GitHub. sebelum mulai, pastikan Git sudah terinstal, jika belum ikuti cara install Git di Windows.
workflow clone → add → commit → push adalah rutinitas yang saya lakukan puluhan kali dalam seminggu. awalnya setiap langkah terasa asing, tapi setelah memahami alurnya, kode kerja di folder → stage → snapshot (commit) → upload (push), semuanya jadi kebiasaan 🙂. di artikel ini, alur itu kita ikuti dari nol, persis seperti yang saya jalani setiap hari di 2026.
Daftar Isi
- 1. Setup sekali saja: config dan auth 2026
- 2. Clone repository yang sudah ada
- 3. Init repository baru dari folder lokal
- 4. Cek status dengan git status
- 5. Add: pilih file ke staging
- 6. Commit: simpan snapshot
- 7. Push: upload ke GitHub
- 8. Pull: ambil update terbaru
- 9. Contoh lengkap upload project baru
- 10. .gitignore biar tidak bocor
- 11. Troubleshooting 2026 yang paling sering
1. Setup Sekali Saja: Config dan Auth 2026
jika Git baru diinstall, maka atur identitas dulu, kalau tidak commit akan protes:
git --version
# git version 2.45.0.windows.1
git config --global user.name "Nama Kalian"
git config --global user.email "[email protected]"
# biar branch default jadi main, bukan master
git config --global init.defaultBranch main
# cek
git config --global --list
di 2026, GitHub sudah lama tidak terima password biasa untuk HTTPS. ada dua cara login yang benar:
Opsi A: HTTPS dengan Personal Access Token (PAT):
- buka GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic)
- Generate new token → centang
repo→ copy tokennya (dia cuma muncul sekali) - saat
git pushminta password, paste token itu sebagai password, bukan password akun
Opsi B: SSH (saya pakai ini untuk harian):
ssh-keygen -t ed25519 -C "[email protected]"
# enter enter
cat ~/.ssh/id_ed25519.pub
# copy isinya ke GitHub → Settings → SSH and GPG keys → New SSH key
# test
ssh -T [email protected]
# Hi username! You've successfully authenticated
kalau sudah pakai SSH, URL remote jadi [email protected]:username/repo.git bukan https://. kalau sudah terlanjur HTTPS, ganti dengan git remote set-url origin [email protected]:username/repo.git.
tip 2026: install
gh(GitHub CLI) biar login cukupgh auth logindan bikin repo langsunggh repo create nama --public --source=. --push, tidak perlu buka browser.
2. Clone Repository yang Sudah Ada
jika repository sudah ada di GitHub dan kalian mau lanjutkan di laptop, maka pakai clone:
git clone https://github.com/username/nama-repo.git
cd nama-repo
atau dengan SSH:
git clone [email protected]:username/nama-repo.git
kalau repo besar dan mau cepat untuk coba saja, tambah --depth 1 biar history tidak semua ke-download:
git clone --depth 1 https://github.com/username/nama-repo.git
setelah clone, folder sudah otomatis ada .git di dalamnya, dan git remote -v akan nunjuk ke URL GitHub. kalian bisa langsung git status tanpa init lagi.
3. Init Repository Baru dari Folder Lokal
jika project sudah ada di laptop tapi belum di-Git, maka pakai init:
cd project-ku
git init
# Initialized empty Git repository in C:/project-ku/.git/
git remote add origin https://github.com/username/nama-repo.git
# atau SSH
# git remote add origin [email protected]:username/nama-repo.git
git remote -v
# cek remote sudah benar
satu folder cuma butuh satu kali git init. kalau tidak sengaja init di dalam folder yang sudah ada .git di atasnya, akan jadi nested repo dan bikin bingung, cek dengan git status kalau muncul fatal: not a git repository berarti belum di folder yang benar.
4. Cek Status dengan git status
jika sudah ada perubahan, maka git status adalah perintah yang paling sering saya ketik:
git status
keluarannya ada tiga kelompok:
Untracked files→ file baru yang belum pernah di-addChanges not staged for commit→ file yang sudah pernah di-commit tapi dimodifikasi dan belum di-addChanges to be committed→ file yang sudah di-adddan siap di-commit
git status -s
# -s = short, lebih ringkas
# ?? = untracked, M = modified, A = added, D = deleted
biasakan git status sebelum add dan sebelum commit, biar tidak ada file yang ketinggalan atau malah file .env ikut ke-push.
5. Add: Pilih File ke Staging
jika sudah tahu file apa yang berubah, maka add untuk masukkan ke staging area, ibarat keranjang sebelum di-checkout:
git add index.html # stage satu file
git add src/app.js # stage file di folder
git add src/*.js # stage semua .js di src
git add . # stage semua perubahan di folder ini
git add -A # stage semua termasuk file yang dihapus
cek lagi:
git status
# sekarang file pindah ke Changes to be committed (hijau)
kalau salah add, bisa batalin:
git restore --staged index.html # keluarkan dari staging (Git 2.23+)
# atau cara lama
git reset HEAD index.html
jangan
add .sebelum cek.gitignore. kalau.envataunode_modulesbelum di-ignore, mereka akan ikut ke staging dan ukurannya bisa ratusan MB.
6. Commit: Simpan Snapshot
jika file sudah di-staging, maka commit untuk simpan snapshot ke history lokal:
git commit -m "Tambah fitur login"
-m untuk pesan satu baris. untuk pesan panjang, pakai editor:
git commit
# akan buka editor, tulis:
# Tambah fitur login
#
# - Form login dengan validasi
# - Session handling
# - Redirect ke dashboard
atau satu perintah dengan dua -m:
git commit -m "Tambah fitur login" -m "- Form login dengan validasi
- Session handling
- Redirect ke dashboard"
aturan pesan yang saya pakai di 2026 (biar enak dibaca tim dan di git log):
- pakai imperatif:
TambahbukanMenambahkanatauAdded - baris pertama maksimal 50 karakter, baris kedua kosong, baru detail
- contoh:
fix: atasi validasi email kosong,feat: tambah export excel
cek history:
git log --oneline -5
# a1b2c3d Tambah fitur login
# 9f8e7d6 Initial commit
git show HEAD
# lihat isi commit terakhir
kalau salah pesan commit terakhir dan belum di-push:
git commit --amend -m "Tambah fitur login dengan validasi"
7. Push: Upload ke GitHub
jika commit sudah di lokal, maka push untuk kirim ke GitHub:
git push origin main # upload ke branch main di remote origin
git push origin master # kalau repo lama masih pakai master
pertama kali push dari repo baru, pakai -u untuk set upstream:
git push -u origin main
# selanjutnya cukup
git push
origin itu nama default remote saat clone atau remote add. cek dengan git remote -v. main itu nama branch. di 2026 semua repo baru GitHub defaultnya main, kalau kalian masih lihat master berarti repo lama, bisa ganti dengan git branch -M main.
kalau push ditolak karena remote lebih baru (misal teman sudah push duluan), jangan pakai --force, tapi pull dulu:
git pull --rebase origin main
# selesaikan conflict kalau ada
git push
8. Pull: Ambil Update Terbaru
jika kerja bareng tim atau pindah laptop, maka biasakan pull sebelum mulai coding:
git pull origin main
pull itu gabungan fetch + merge. kalau mau history lebih rapi tanpa commit merge, pakai rebase:
git pull --rebase origin main
bedanya: merge bikin commit Merge branch 'main'... sedangkan rebase susun commit kalian di atas commit terbaru, history jadi lurus. saya pakai rebase untuk pull harian, merge hanya untuk gabung branch fitur.
kalau cuma mau lihat ada update apa tanpa langsung merge:
git fetch origin
git log --oneline main..origin/main
# lihat commit apa yang ada di remote tapi belum di lokal
9. Contoh Lengkap Upload Project Baru
jika kalian punya folder project-saya yang sudah ada file dan mau jadi repo GitHub baru, maka ini langkah yang saya lakukan tiap kali:
# 1. Buat repo baru di github.com → New repository → nama project-saya
# JANGAN centang Add README, .gitignore, atau license biar kosong
# 2. Di terminal, masuk folder project
cd project-saya
# 3. Init dan atur branch ke main
git init
git branch -M main
# 4. Buat .gitignore dulu sebelum add
echo "node_modules/
.env
vendor/
__pycache__/
*.log
dist/
.venv/" > .gitignore
# 5. Add, commit
git add .
git status
# cek, pastikan .env tidak ikut hijau
git commit -m "Initial commit"
# 6. Hubungkan ke GitHub dan push
git remote add origin https://github.com/username/project-saya.git
# atau SSH: git remote add origin [email protected]:username/project-saya.git
git push -u origin main
kalau pakai GitHub CLI lebih pendek:
cd project-saya
git init
git add .
git commit -m "Initial commit"
gh repo create project-saya --public --source=. --push
# langsung jadi repo dan ter-push
setelah sukses, cek di github.com/username/project-saya, file sudah ada. workflow harian setelah itu cuma:
git status
git add .
git commit -m "Update fitur X"
git push
10. .gitignore Biar Tidak Bocor
jika add . tanpa .gitignore, maka file sensitif bisa bocor ke GitHub. buat file .gitignore di root project sebelum add:
# dependencies
node_modules/
vendor/
.venv/
__pycache__/
# env dan secret
.env
.env.local
*.key
# build
dist/
build/
*.log
*.tmp
# OS
.DS_Store
Thumbs.db
cek apakah sudah ke-ignore:
git status --ignored
# file yang di-ignore akan muncul di sini
git check-ignore -v .env
# .gitignore:3:.env .env → berarti sudah ke-ignore baris 3
kalau file sudah terlanjur ke-commit sebelum di-ignore, tambahkan ke .gitignore saja tidak cukup, harus hapus dari history:
git rm --cached .env
git commit -m "Hapus .env dari tracking"
11. Troubleshooting 2026 yang Paling Sering
jika push atau pull error, maka cek ini dulu, 90 persen selesai di sini:
| Error | Penyebab | Solusi |
|---|---|---|
Authentication failed | pakai password biasa | ganti pakai PAT atau SSH, gh auth login paling gampang |
remote: Support for password authentication was removed | GitHub tolak password | buat PAT classic dengan scope repo |
fatal: not a git repository | belum init atau clone | git init atau cd ke folder yang ada .git |
error: failed to push, updates were rejected | remote lebih baru | git pull --rebase origin main lalu push lagi |
! [rejected] main -> main (fetch first) | sama seperti di atas | jangan --force kalau kerja tim |
The following untracked files would be overwritten | file lokal bentrok | git stash dulu atau git clean -fd kalau yakin |
Permission denied (publickey) | SSH key belum di-add | cat ~/.ssh/id_ed25519.pub lalu add ke GitHub SSH keys |
pengalaman saya: error paling sering di Windows adalah
LF will be replaced by CRLF. itu bukan error, cuma warning line ending. atasi dengangit config --global core.autocrlf truedi Windows, atauinputdi Mac/Linux, biar tidak muncul terus.
Kesimpulan
workflow Git dasar itu init/clone → add → commit → push, dan untuk ambil update pakai pull:
git clone→ download repo yang sudah adagit init+git remote add origin→ mulai repo barugit status→ cek apa yang berubahgit add→ masukkan ke staginggit commit -m "pesan"→ simpan snapshot lokalgit push -u origin main→ upload, selanjutnya cukupgit pushgit pull --rebase origin main→ ambil update harian biar history rapi
habis ini pelajari apa itu .gitignore dan cara membuatnya biar file sensitif tidak bocor, dan panduan Git branching untuk pemula buat kerja bareng tim.
Baca Juga Mengenai :
Pertanyaan yang Sering Diajukan
Apa urutan git add, commit, push yang benar?
git add untuk pilih file ke staging, git commit untuk simpan snapshot lokal, git push untuk upload ke GitHub. urutannya add dulu baru commit baru push, kalau kebalik push tidak ada yang kekirim.
Apa beda git clone dan git init?
git clone untuk download repo yang sudah ada di GitHub, langsung dapat history. git init untuk bikin repo baru dari folder lokal yang belum di-git.
Kenapa git push minta password tapi gagal?
sejak 2021 GitHub tidak terima password biasa untuk HTTPS, harus pakai Personal Access Token (PAT) atau SSH key. buat PAT di GitHub Settings lalu pakai sebagai password, atau pakai gh auth login.
Apa itu git push -u origin main?
opsi -u itu set upstream, jadi branch lokal main dihubungkan ke origin main. setelah sekali pakai -u, selanjutnya cukup git push tanpa tulis origin main.
Bagaimana cara upload project baru ke GitHub?
buat repo kosong di GitHub tanpa centang README, lalu di lokal jalankan git init, git add ., git commit -m "Initial commit", git branch -M main, git remote add origin URL, git push -u origin main.
Apa beda main dan master?
keduanya nama branch default. GitHub sekarang pakai main sebagai default, master adalah nama lama. di 2026 biasakan pakai main, dan atur dengan git config --global init.defaultBranch main.
Bagaimana ambil update terbaru dari GitHub?
pakai git pull origin main sebelum mulai coding. kalau mau riwayat lebih rapi, pakai git pull --rebase origin main biar tidak ada commit merge yang tidak perlu.

