A branch is a movable pointer to a commit. main (or master on old repos) is just a name.
git branch feature-gpa git switch feature-gpa # edit files, add, commit git switch main git merge feature-gpa
git switch is the current command; git checkout still works. Merge brings the feature history into main. If both sides changed the same lines, Git stops and marks the file with <<<<<<< conflict markers. You edit to the correct code, then git add that file and git commit to finish the merge. There is no magic “accept GitHub’s guess” that is always right.