Bosca / Git

Pull requests

Propose, review, merge

Every change lands through a pull request: open it as a draft, gather inline feedback, collect the approvals that count, and merge with the strategy your repo allows — with branch protection deciding when a merge is actually allowed.

Review

Feedback on the line

Reviewers comment directly on a diff line, and each comment opens a thread you can resolve once it's addressed. A review carries a verdict, and the verdict is what moves the PR forward — or holds it.

  • Approve counts toward the required approvals; Request changes blocks the merge; Comment leaves feedback without a verdict.
  • A draft PR can't merge until you mark it ready.
  • Conflicts are detected and listed by file; rebase or merge in the latest target, then re-push.
review · Map.kt
fun publish(session: Session) {+ liveSessions.emit(session.geo) }
M
Maria on line 2

Guard for a null geo before emitting?

✓ resolved
✓ ApproveRequest changesComment

Merging

Four ways to land it

Which strategies are on offer is set by the repository and narrowed by branch protection — so a merge is only ever done the way you allow.

Merge commit

keeps both histories with a merge commit

Squash

collapses the branch into one commit

Rebase

replays the commits onto the target

Fast forward

moves the target ref, strict descendant only

Branch protection

Rules that hold the line

A protection rule targets branches by name or glob — main, release/*, feature/** — and turns your standards into gates a merge has to clear. Direct pushes are blocked; everything goes through a reviewed, checked PR.

  • Force pushes and branch deletion are blocked by default; opt in only where you mean to.
  • Required status checks name the exact contexts — ci/build, ci/test — that must be green.
  • Each rule is scoped to a branch pattern, so main and release/* can carry different standards.
protection · main
  • Require a pull request
  • A minimum number of approvals
  • Dismiss stale approvals on new commits
  • Require code-owner review
  • Require linear history
  • Require named status checks to pass

Keep exploring

More on Git