Various Git Notes
Git Overview
Commit Analysis
PR Merging
Keeping Features Up To Date With Main
Git.exe versus Git Bash
Git is a distributed version control system. It lets you snapshot your source code over time, branch to develop features safely, merge changes back, and collaborate with others without a central single point of failure. Every clone is a full repository with complete history.
Core Concepts (30-second tour)
- Repository (repo): a project’s versioned history.
- Commit: a snapshot with a message (who/what/why).
- Branch: a movable pointer for parallel work (e.g.,
main,feature/x). - Merge / Rebase: ways to integrate changes between branches.
- Remote: a hosted copy (e.g., GitHub, Azure DevOps).
Windows Tools You Can Use
- Git for Windows (includes git.exe, Git Bash, and Git Credential Manager).
- Command Prompt or PowerShell (run
gitdirectly if Git is on PATH). - Windows Terminal (tabs/profiles for PowerShell, cmd, Git Bash).
- VS Code (excellent built-in Git UI + terminal).
- Visual Studio (integrated Git tooling for .NET projects).
- GUI clients: GitHub Desktop, Sourcetree, TortoiseGit (Explorer integration).
Popular Repo Providers (Windows-friendly)
- GitHub — massive ecosystem, Actions CI/CD, great integrations.
- Azure DevOps Repos — tight Azure/Boards/Pipelines integration.
- GitLab — integrated DevSecOps platform, self-host or cloud.
- Bitbucket — Atlassian ecosystem (Jira), supports Git & Pipelines.
- Self-hosted — e.g., Gitea/GitLab CE on Windows Server or Docker.
Install on Windows (Quick)
Install Git for Windows. Accept defaults unless you have a reason to change; keep “Git from the Command Prompt/PowerShell” and “Git Credential Manager” enabled.
:: Verify installation (Command Prompt or PowerShell)
git --version
:: Optional: enable colored output
git config --global color.ui auto
First-Time Setup
:: Identify yourself (appears in commit metadata)
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
:: Use the Windows Git Credential Manager (stores HTTPS creds/SSO tokens)
git config --global credential.helper manager
SSH Key (Optional, for GitHub/Azure DevOps/GitLab)
:: PowerShell: generate an Ed25519 key
ssh-keygen -t ed25519 -C "you@example.com"
# Press Enter to accept defaults, set a passphrase for security
# Add the public key (~/.ssh/id_ed25519.pub) to your repo provider account
:: Start agent and add key (PowerShell)
Start-Service ssh-agent
ssh-add $env:USERPROFILE\.ssh\id_ed25519
Daily Basics (Windows)
:: Clone a repo
git clone https://<provider>/<org>/<repo>.git
cd <repo>
:: Create a feature branch
git switch -c feature/my-change
:: Stage and commit
git add .
git commit -m "Feature: concise summary"
:: Push branch
git push -u origin feature/my-change
:: Pull latest changes for your current branch
git pull --ff-only
:: Keep your feature up to date with main (choose one)
git merge origin/main
# or
git rebase origin/main
:: Open a PR on your provider (UI), then:
# after merge, update local main
git switch main
git pull --ff-only
Tips Specific to Windows
- Line Endings: default autocrlf usually OK; for cross-platform repos consider
.gitattributeswith* text=auto. - Paths: prefer relative paths in scripts; long path support can be enabled in Windows if needed.
- Terminal: Windows Terminal + PowerShell gives a great Git experience; keep Git Bash handy for Unix-style tools.

















