We cannot switch branches in Git without committing the changes or stashing them. What is the bigger picture behind this and why did Linus take this approach while designing Git?
If switching branches cause local changes showing up across branches, What is the point in branches as they are expected work in isolation ?