Get you from zero to making your first contribution in under 30 minutes.
Before you begin, make sure you have:
- GitHub account created
- Two-factor authentication (2FA) enabled
- Access request submitted by your WP/Group lead
- Organization invitation accepted
Don't have these? See Onboarding Procedures.
# Set your identity
git config --global user.name "Your Full Name"
git config --global user.email "your.email@organization.com"
# Set default branch name
git config --global init.defaultBranch main
# Verify configuration
git config --list# Generate SSH key
ssh-keygen -t ed25519 -C "your.email@organization.com"
# Press Enter to accept defaults, add passphrase when prompted
# Start SSH agent and add key
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
# Copy public key
cat ~/.ssh/id_ed25519.pub
# Copy the outputAdd to GitHub:
- Go to GitHub Settings → SSH Keys
- Click "New SSH key"
- Paste your public key
- Click "Add SSH key"
Test connection:
ssh -T git@github.com
# Should see: "Hi username! You've successfully authenticated..."Read these sections in order:
-
- Understand how repositories are organized
-
- Learn the basic contribution process
-
- Know how to name your branches
-
- Write proper commit messages
# Navigate to your workspace
cd ~/workspace
# Clone repository (replace with your repo name)
git clone git@github.com:webuild-consortium/repo-name.git
# Navigate into repository
cd repo-name# Update main branch
git checkout main
git pull origin main
# Create feature branch (use actual issue number)
git checkout -b feature/123-your-feature-name# Edit files as needed
# Make your changes in your editor
# Check what changed
git status
git diff# Stage changes
git add .
# Commit with proper message
git commit -m "feat: brief description of change
- Detail 1
- Detail 2
- Detail 3
Closes #123"# Push your branch
git push origin feature/123-your-feature-nameOn GitHub:
- Go to repository
- Click "Pull requests" → "New pull request"
- Select your branch
- Fill in PR description
- Request reviewers
- Click "Create pull request"
| Task | Command |
|---|---|
| Update main | git checkout main && git pull origin main |
| Create branch | git checkout -b feature/123-name |
| Check status | git status |
| Stage changes | git add . |
| Commit | git commit -m "type: description" |
| Push branch | git push origin feature/123-name |
| Update branch | git fetch origin && git rebase origin/main |
| Delete branch | git branch -d feature/123-name |
| Type | Format | Example |
|---|---|---|
| Feature | feature/[issue]-[name] |
feature/123-add-auth |
| Bug fix | bugfix/[issue]-[name] |
bugfix/456-fix-timeout |
| Hotfix | hotfix/[issue]-[name] |
hotfix/789-security-patch |
| Docs | docs/[issue]-[name] |
docs/012-update-readme |
| Type | When to Use | Example |
|---|---|---|
feat: |
New feature | feat: add user authentication |
fix: |
Bug fix | fix: resolve login timeout |
docs: |
Documentation | docs: update API guide |
refactor: |
Code refactoring | refactor: simplify auth logic |
test: |
Tests | test: add integration tests |
chore: |
Maintenance | chore: update dependencies |
# Check your access
gh repo view webuild-consortium/repo-name
# Verify authentication
gh auth statusSolution: Contact your WP/Group lead if access issues persist.
# Update your branch
git fetch origin
git rebase origin/main
# Fix conflicts in your editor, then:
git add .
git rebase --continue
git push origin your-branch --force-with-lease# Fix last commit message
git commit --amend -m "New message"
git push origin your-branch --force-with-lease# Move commit to new branch
git branch feature/accidental-commit
git reset --hard HEAD~1
git checkout feature/accidental-commit- Passwords or API keys
- Private keys or certificates
- Personal data
- Database credentials
- Use
.envfiles for secrets (add to.gitignore) - Enable 2FA on your GitHub account
- Review code for security issues
- Keep dependencies updated
If you accidentally commit a secret:
- Rotate the secret immediately
- Contact Technical Coordinator
- See Security Incident Response
- Check documentation - Search in relevant policy doc
- Search issues - Someone may have asked before
- Ask your team - Contact your WP/Group lead
- Technical issues: Open issue in relevant repository
- Policy questions: Contact WP/Group lead
- Access issues: Email Technical Coordinator (webuild-github-support@grnet.gr)
- Real-time chat: WEBUILD Slack
- GitHub Skills - Free interactive courses
- Introduction to Repository Management - Hands-on practice
- Pro Git Book - Comprehensive Git guide (free)
- GitHub Documentation - Official GitHub docs
- Git Cheat Sheet - Quick reference
- Keep branches small - Easier to review, faster to merge
- Commit often - Small, logical commits are better
- Update frequently - Sync with main daily to avoid conflicts
- Test locally - Always test before pushing
- Ask early - Don't struggle alone, ask for help
- Write clear PR descriptions - Help reviewers understand your changes
- Respond to feedback promptly - Keep the conversation moving
- Review others' code - Learn and contribute to quality
- Document decisions - Future you will thank you
- Be respectful - We're all learning together
You now have everything you need to start contributing to WEBUILD repositories.
Contact your WP/Group lead or email webuild-github-support@grnet.gr