feat: add remotes and stash
This commit is contained in:
123
module-06-rebasing/setup.ps1
Normal file
123
module-06-rebasing/setup.ps1
Normal file
@@ -0,0 +1,123 @@
|
||||
#!/usr/bin/env pwsh
|
||||
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Sets up the rebasing challenge environment.
|
||||
|
||||
.DESCRIPTION
|
||||
Creates a Git repository with diverged branches to practice rebasing.
|
||||
The feature branch needs to be rebased onto main.
|
||||
#>
|
||||
|
||||
# Remove existing challenge directory if present
|
||||
if (Test-Path "challenge") {
|
||||
Write-Host "Removing existing challenge directory..." -ForegroundColor Yellow
|
||||
Remove-Item -Path "challenge" -Recurse -Force
|
||||
}
|
||||
|
||||
# Create challenge directory
|
||||
Write-Host "Creating challenge environment..." -ForegroundColor Cyan
|
||||
New-Item -ItemType Directory -Path "challenge" | Out-Null
|
||||
Set-Location "challenge"
|
||||
|
||||
# Initialize git repository
|
||||
git init | Out-Null
|
||||
git config user.name "Workshop User" | Out-Null
|
||||
git config user.email "user@workshop.local" | Out-Null
|
||||
|
||||
# Create initial file and commit
|
||||
$readme = @"
|
||||
# My Project
|
||||
|
||||
A sample project for learning Git rebasing.
|
||||
"@
|
||||
|
||||
Set-Content -Path "README.md" -Value $readme
|
||||
git add README.md
|
||||
git commit -m "Initial commit" | Out-Null
|
||||
|
||||
# Create and switch to feature branch
|
||||
git checkout -b feature | Out-Null
|
||||
|
||||
# Add commits on feature branch
|
||||
$feature1 = @"
|
||||
# My Project
|
||||
|
||||
A sample project for learning Git rebasing.
|
||||
|
||||
## Features
|
||||
|
||||
- Feature A: User authentication
|
||||
"@
|
||||
|
||||
Set-Content -Path "README.md" -Value $feature1
|
||||
git add README.md
|
||||
git commit -m "Add feature A" | Out-Null
|
||||
|
||||
$feature2 = @"
|
||||
# My Project
|
||||
|
||||
A sample project for learning Git rebasing.
|
||||
|
||||
## Features
|
||||
|
||||
- Feature A: User authentication
|
||||
- Feature B: Data validation
|
||||
"@
|
||||
|
||||
Set-Content -Path "README.md" -Value $feature2
|
||||
git add README.md
|
||||
git commit -m "Add feature B" | Out-Null
|
||||
|
||||
# Switch back to main and add commits (simulating other work happening on main)
|
||||
git checkout main | Out-Null
|
||||
|
||||
$main1 = @"
|
||||
# My Project
|
||||
|
||||
A sample project for learning Git rebasing.
|
||||
|
||||
## Installation
|
||||
|
||||
Run \`npm install\` to install dependencies.
|
||||
"@
|
||||
|
||||
Set-Content -Path "README.md" -Value $main1
|
||||
git add README.md
|
||||
git commit -m "Add installation instructions" | Out-Null
|
||||
|
||||
$main2 = @"
|
||||
# My Project
|
||||
|
||||
A sample project for learning Git rebasing.
|
||||
|
||||
## Installation
|
||||
|
||||
Run \`npm install\` to install dependencies.
|
||||
|
||||
## Configuration
|
||||
|
||||
Copy \`config.example.json\` to \`config.json\` and update settings.
|
||||
"@
|
||||
|
||||
Set-Content -Path "README.md" -Value $main2
|
||||
git add README.md
|
||||
git commit -m "Add configuration instructions" | Out-Null
|
||||
|
||||
# Switch back to feature branch
|
||||
git checkout feature | Out-Null
|
||||
|
||||
# Return to module directory
|
||||
Set-Location ..
|
||||
|
||||
Write-Host "`n========================================" -ForegroundColor Green
|
||||
Write-Host "Challenge environment created!" -ForegroundColor Green
|
||||
Write-Host "========================================" -ForegroundColor Green
|
||||
Write-Host "`nYou are now on the 'feature' branch." -ForegroundColor Cyan
|
||||
Write-Host "The 'main' branch has new commits that aren't in your feature branch." -ForegroundColor Cyan
|
||||
Write-Host "`nYour task:" -ForegroundColor Yellow
|
||||
Write-Host "1. Navigate to the challenge directory: cd challenge" -ForegroundColor White
|
||||
Write-Host "2. View the commit history: git log --oneline --graph --all" -ForegroundColor White
|
||||
Write-Host "3. Rebase the 'feature' branch onto 'main'" -ForegroundColor White
|
||||
Write-Host "4. View the history again to see the linear result" -ForegroundColor White
|
||||
Write-Host "`nRun '../verify.ps1' from the challenge directory to check your solution.`n" -ForegroundColor Cyan
|
||||
Reference in New Issue
Block a user