enterprise_assest_managemen.../GIT_COMMANDS.md

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
# 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)
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

  1. Always pull before starting work:

    git pull
    
  2. Use descriptive commit messages:

    git commit -m "Fix asset deletion not updating UI cache"
    
  3. Stage changes selectively:

    git add -p  # Interactive staging
    
  4. Check what you're committing:

    git diff --staged
    
  5. 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/description or fix/description
  • For this project: Always test locally before pushing to ensure the app builds and runs correctly

Pro Tips

  • Use git add -p to selectively stage parts of files
  • Use git log --graph --oneline --all for visual commit history
  • Set up aliases for common commands in ~/.gitconfig
  • Use git blame filename to 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!