Cara Setup Git dan GitHub untuk Pemula
Git adalah version control system yang essential untuk developer. Mari pelajari cara setup dan menggunakannya dengan GitHub.
Install Git
Linux (Ubuntu/Debian)
# Update package list
sudo apt update
# Install Git
sudo apt install git
# Verify installation
git --version
Windows
# Download dari https://git-scm.com/download/win
# Atau gunakan winget
winget install Git.Git
macOS
# Install via Homebrew
brew install git
# Atau Xcode Command Line Tools
xcode-select --install
Initial Configuration
Set Identity
# Set username
git config --global user.name "Nama Anda"
# Set email (sama dengan GitHub)
git config --global user.email "email@example.com"
# Verify configuration
git config --list
Configure Defaults
# Set default branch name
git config --global init.defaultBranch main
# Set default editor
git config --global core.editor "code --wait"
# Enable colored output
git config --global color.ui auto
Setup GitHub Account
Create SSH Key
# Generate SSH key
ssh-keygen -t ed25519 -C "email@example.com"
# Start SSH agent
eval "$(ssh-agent -s)"
# Add key to agent
ssh-add ~/.ssh/id_ed25519
# Copy public key
cat ~/.ssh/id_ed25519.pub
Add SSH Key to GitHub
1. GitHub > Settings > SSH and GPG keys
2. Click "New SSH key"
3. Paste public key
4. Save
Test Connection
# Test SSH connection
ssh -T git@github.com
# Should see: "Hi username! You've successfully authenticated..."
Basic Git Workflow
Initialize Repository
# Create project directory
mkdir myproject
cd myproject
# Initialize Git
git init
# Check status
git status
Stage and Commit
# Create a file
echo "# My Project" > README.md
# Stage file
git add README.md
# Stage all files
git add .
# Commit with message
git commit -m "Initial commit"
View History
# View commit history
git log
# Compact view
git log --oneline
# With graph
git log --oneline --graph --all
Working with Remote
Add Remote Repository
# Create repo on GitHub first, then:
git remote add origin git@github.com:username/repo.git
# Verify remote
git remote -v
Push to GitHub
# Push to main branch
git push -u origin main
# Subsequent pushes
git push
Clone Repository
# Clone via SSH
git clone git@github.com:username/repo.git
# Clone via HTTPS
git clone https://github.com/username/repo.git
# Clone to specific folder
git clone git@github.com:username/repo.git myfolder
Branching
Create and Switch Branches
# Create new branch
git branch feature-login
# Switch to branch
git checkout feature-login
# Create and switch in one command
git checkout -b feature-signup
# Modern way (Git 2.23+)
git switch -c feature-dashboard
List Branches
# List local branches
git branch
# List all branches (including remote)
git branch -a
# List remote branches
git branch -r
Merge Branches
# Switch to main
git checkout main
# Merge feature branch
git merge feature-login
# Delete merged branch
git branch -d feature-login
Pull Requests on GitHub
Create Pull Request
# Push feature branch
git push -u origin feature-login
# Then on GitHub:
# 1. Go to repository
# 2. Click "Compare & pull request"
# 3. Add description
# 4. Request reviewers
# 5. Create pull request
Sync with Main
# Fetch latest changes
git fetch origin
# Merge main into feature branch
git checkout feature-login
git merge origin/main
# Or rebase
git rebase origin/main
Common Scenarios
Undo Changes
# Discard changes in working directory
git checkout -- filename
# Unstage file
git reset HEAD filename
# Undo last commit (keep changes)
git reset --soft HEAD~1
# Undo last commit (discard changes)
git reset --hard HEAD~1
Stash Changes
# Stash current changes
git stash
# List stashes
git stash list
# Apply latest stash
git stash pop
# Apply specific stash
git stash apply stash@{0}
Resolve Conflicts
# When merge conflict occurs:
# 1. Open conflicted file
# 2. Look for conflict markers
# <<<<<<< HEAD
# your changes
# =======
# their changes
# >>>>>>> branch-name
# 3. Edit to resolve
# 4. Stage and commit
git add .
git commit -m "Resolve merge conflict"
Git Ignore
Create .gitignore
# Create .gitignore file
cat > .gitignore << 'EOF'
# Dependencies
node_modules/
vendor/
# Build output
dist/
build/
# Environment files
.env
.env.local
# IDE
.vscode/
.idea/
# OS files
.DS_Store
Thumbs.db
# Logs
*.log
EOF
Useful Aliases
Configure Aliases
# Short status
git config --global alias.st status
# Short commit
git config --global alias.co checkout
# Log graph
git config --global alias.lg "log --oneline --graph --all"
# Undo last commit
git config --global alias.undo "reset --soft HEAD~1"
Best Practices
Commit Messages
Good commit message format:
- Short summary (50 chars)
- Blank line
- Detailed explanation (optional)
Example:
"Add user authentication
- Implement JWT tokens
- Add login/logout endpoints
- Create auth middleware"
Branch Naming
Conventions:
- feature/user-login
- bugfix/header-alignment
- hotfix/security-patch
- release/v1.0.0
Kesimpulan
Git dan GitHub adalah essential tools untuk development. Mulai dengan basic commands dan gradually learn advanced features seperti branching dan pull requests.
Artikel Terkait
Link Postingan: https://www.tirinfo.com/cara-setup-git-github-pemula/