version control - How does the git's "local-repository" concept differ from "developer branches"? -


in previous job, found easier manage , keep stable pre-release branch (or main, depending on setup) having each developer work on his/her own branch. had single production instance, no need support multiple versions of same apps.

this "pre-release" branch named way because there branch (main) we'd make our staging , production releases from. branches setup such code pre-release branch merged release branch. these merges our code review checkpoints. ci builds made pre-release branch , each developer merge "pre-release" own branch migitage complex merging issues when development body of work completed.

if there need developers pair , work 1 given feature, nothing own branches permissions prevented them working others. worked managing distributed teams individuals within each team working on separate/multiple features.

with of frequent (1-2 times week) 30-minute status update meetings, team, decide go qa , wouldn't particular qa release.

this system worked, find lot of resentment developer branches when searching on topic. there seems lot of enthusiasm git's local repository feature. yet, seems different ways of addressing same problems. not considering cross-network issues local repositories address, such check in latency , such.

there 3 main differences:

  1. local repository means that: local system, , if ever found stranded on desert island no internet connection, you'll still able commit changes. 1 of best things git don't have connected repository able take advantage of version control system. developers work remotely without being able access main repository , can messy when have system subversion, perforce, or type of centralized repository version control system. git , bitkeeper, can work offline.

  2. in developer branch situation, branching integration branch developer branch , merging integration branch. in git, don't merge, send patches , can send changes not master repository, other developers without first sending patch master repository. allows developers work without touching master repository.

  3. in developer/integration branch setup, developer branch in repository means others can see it. in git, developer's changes unavailable until developer delivers changes.


Comments