git

📁 oriolrius/pki-manager-web 📅 Jan 24, 2026
4
总安装量
3
周安装量
#48215
全站排名
安装命令
npx skills add https://github.com/oriolrius/pki-manager-web --skill git

Agent 安装分布

claude-code 2
windsurf 1
trae 1
opencode 1
codex 1
antigravity 1

Skill 文档

Git

Expert assistance with Git version control and collaborative workflows.

Essential Commands

Repository Setup

  • git init – Initialize new repository
  • git clone <url> – Clone remote repository
  • git remote add origin <url> – Add remote
  • git remote -v – List remotes

Daily Workflow

  • git status – Check working tree status
  • git add . – Stage all changes
  • git add -p – Interactive staging
  • git commit -m "message" – Commit with message
  • git commit --amend – Amend last commit
  • git pull – Fetch and merge from remote
  • git push – Push commits to remote

Branch Management

  • git branch – List local branches
  • git branch -a – List all branches (including remote)
  • git branch <name> – Create new branch
  • git checkout <branch> – Switch to branch
  • git checkout -b <name> – Create and switch to new branch
  • git branch -d <name> – Delete branch (safe)
  • git branch -D <name> – Force delete branch
  • git push origin --delete <branch> – Delete remote branch

Viewing History

  • git log – View commit history
  • git log --oneline --graph – Compact graphical history
  • git log --author="name" – Filter by author
  • git show <commit> – Show commit details
  • git diff – Show unstaged changes
  • git diff --staged – Show staged changes
  • git diff <branch1>..<branch2> – Compare branches

Undoing Changes

  • git restore <file> – Discard working changes
  • git restore --staged <file> – Unstage file
  • git reset HEAD~1 – Undo last commit (keep changes)
  • git reset --hard HEAD~1 – Undo last commit (discard changes)
  • git revert <commit> – Create new commit that undoes changes
  • git clean -fd – Remove untracked files

Stashing

  • git stash – Stash current changes
  • git stash list – List stashes
  • git stash pop – Apply and remove last stash
  • git stash apply – Apply last stash (keep in list)
  • git stash drop – Delete last stash

Advanced Operations

Rebasing

# Rebase current branch onto main
git rebase main

# Interactive rebase (squash, reorder, edit commits)
git rebase -i HEAD~3

# Continue after resolving conflicts
git rebase --continue

# Abort rebase
git rebase --abort

Cherry-picking

# Apply specific commit to current branch
git cherry-pick <commit-hash>

# Cherry-pick without committing
git cherry-pick -n <commit-hash>

Merging

# Merge branch into current
git merge <branch>

# Merge without fast-forward (create merge commit)
git merge --no-ff <branch>

# Abort merge
git merge --abort

Conflict Resolution

# Show conflicts
git status

# After resolving conflicts in files
git add <resolved-file>
git commit

# Use theirs/ours for entire file
git checkout --theirs <file>
git checkout --ours <file>

Git Workflows

Feature Branch Workflow

# Create feature branch
git checkout -b feature/new-feature

# Work and commit
git add .
git commit -m "Add new feature"

# Update from main
git checkout main
git pull
git checkout feature/new-feature
git rebase main

# Push feature branch
git push -u origin feature/new-feature

Hotfix Workflow

# Create hotfix from main
git checkout main
git pull
git checkout -b hotfix/critical-fix

# Fix and commit
git commit -am "Fix critical bug"

# Merge back to main
git checkout main
git merge hotfix/critical-fix
git push

# Clean up
git branch -d hotfix/critical-fix

Configuration

User Setup

git config --global user.name "Your Name"
git config --global user.email "your@email.com"

Useful Aliases

git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.lg "log --oneline --graph --all"

Editor

git config --global core.editor "vim"

Best Practices

  1. Commit Messages: Use clear, descriptive messages following conventional commits
  2. Small Commits: Make atomic commits that do one thing
  3. Pull Before Push: Always pull latest changes before pushing
  4. Branch Naming: Use descriptive names like feature/, bugfix/, hotfix/
  5. Never Force Push: Avoid git push --force on shared branches
  6. Review Changes: Use git diff before committing
  7. Protect Main: Never commit directly to main/master

Troubleshooting

Undo accidental commit to wrong branch

git reset HEAD~1  # Undo commit, keep changes
git stash         # Stash changes
git checkout <correct-branch>
git stash pop     # Apply changes
git add .
git commit -m "message"

Fix merge conflicts

# View conflicts
git status

# Edit conflicting files (look for <<<<<<, ======, >>>>>>)
# Remove conflict markers and keep desired code

# Mark as resolved
git add <file>
git commit

Recover deleted branch

# Find commit hash
git reflog

# Recreate branch
git checkout -b <branch-name> <commit-hash>