5.4 KiB
5.4 KiB
Git Commands Reference
This document provides essential Git commands for developing the Enterprise Asset Management System.
Basic Development Workflow
1. Check Status & See Changes
git status # See what files are modified
git diff # See specific changes in files
git diff --staged # See staged changes
2. Stage & Commit Changes
# Stage specific files
git add filename.js
git add frontend/src/views/
# Stage all changes
git add .
# Commit with message
git commit -m "Add user authentication feature"
3. Push to Remote
git push # Push current branch to remote
git push origin main # Push main branch explicitly
Feature Development Workflow
Option A: Simple (Direct to main)
# Make changes, then:
git add .
git commit -m "Implement asset filtering feature"
git push
Option B: Feature Branches (Recommended)
# Create and switch to feature branch
git checkout -b feature/asset-export
# Make changes, then:
git add .
git commit -m "Add CSV export functionality"
git push -u origin feature/asset-export
# When ready to merge:
git checkout main
git merge feature/asset-export
git push
git branch -d feature/asset-export # Delete local branch
Quick Reference Commands
Daily Commands
git pull # Get latest changes from remote
git add . # Stage all changes
git commit -m "Your message" # Commit with message
git push # Push to remote
Useful Checks
git log --oneline -10 # See last 10 commits
git branch -a # See all branches
git remote -v # Check remote URLs
Undo Commands
git reset HEAD~1 # Undo last commit (keep changes)
git checkout -- filename.js # Discard changes to file
git restore filename.js # Discard changes (newer syntax)
Recommended Commit Message Format
git commit -m "Add asset search functionality
- Implement real-time search in Assets.vue
- Add debounced search input
- Update AssetRepository with search filters
- Add search tests"
Advanced Commands
Branch Management
git branch # List local branches
git branch -r # List remote branches
git branch -a # List all branches
git branch -d branch-name # Delete local branch
git push origin --delete branch-name # Delete remote branch
Stashing Changes
git stash # Save changes temporarily
git stash pop # Restore stashed changes
git stash list # List all stashes
git stash drop # Delete latest stash
Remote Management
git remote add origin <url> # Add remote repository
git remote -v # Show remote URLs
git remote set-url origin <new-url> # Change remote URL
Syncing with Remote
git fetch # Download remote changes (don't merge)
git pull # Download and merge remote changes
git pull --rebase # Pull with rebase instead of merge
Common Scenarios
Starting a New Feature
git checkout main
git pull
git checkout -b feature/new-feature
# Make changes
git add .
git commit -m "Implement new feature"
git push -u origin feature/new-feature
Updating Your Branch with Latest Main
git checkout main
git pull
git checkout feature/your-feature
git merge main
# Or use rebase for cleaner history:
git rebase main
Quick Fix Workflow
git checkout main
git pull
git checkout -b hotfix/fix-critical-bug
# Make fix
git add .
git commit -m "Fix critical bug in authentication"
git push -u origin hotfix/fix-critical-bug
# Create pull request or merge directly
Best Practices
-
Always pull before starting work:
git pull -
Use descriptive commit messages:
git commit -m "Fix asset deletion not updating UI cache" -
Stage changes selectively:
git add -p # Interactive staging -
Check what you're committing:
git diff --staged -
Use feature branches for new features:
git checkout -b feature/asset-export
Emergency Commands
Undo Last Commit (but keep changes)
git reset --soft HEAD~1
Completely Discard All Changes
git reset --hard HEAD
Go Back to Previous Commit
git log --oneline # Find commit hash
git reset --hard <commit-hash>
Create Branch from Specific Commit
git checkout -b new-branch <commit-hash>
Project-Specific Notes
- Main branch:
main - Remote name:
origin - Typical feature branch naming:
feature/descriptionorfix/description - For this project: Always test locally before pushing to ensure the app builds and runs correctly
Pro Tips
- Use
git add -pto selectively stage parts of files - Use
git log --graph --oneline --allfor visual commit history - Set up aliases for common commands in
~/.gitconfig - Use
git blame filenameto see who changed each line - Use
git show <commit-hash>to see details of a specific commit
Remember: Always ensure your code works locally before committing and pushing to avoid breaking the remote repository!