官术网_书友最值得收藏!

Basic workflows for Git and SVN compared

Although the basic checkout, work, merge, and commit workflow is supported by all mainstream SCMs, it's worth looking at some of the additional process steps that Git requires. Each additional step is, obviously, an additional task that a developer will have to perform before code is fully committed, though none of them are necessarily long-running tasks, so the impact is rarely going to be substantial. On the other hand, each additional step involved provides an additional point where additional code modification can be made before it's attached to the master version of the code.

Compare the Git Workflow (left) and SVN Workflow (right):

  • The processes of getting the current version of the code and editing it are fundamentally the same.

  • Git allows the developer to Stage Changes. However, perhaps the modifications to the code in three out of five files are complete, and ready to be committed, at least locally, while there are significant efforts still needed on the other two. Since changes must be staged in Git prior to committing, the files that are done can be staged and then committed separately, leaving the others still in progress. Uncommitted staged files can still be edited and re-staged (or not) as needed as well; until a change-set is actually committed, everything is still in an in-progress state.

  • Git's Commit Changes is to a local repository, which again means that continued editing can happen, as well as manipulation of local commits, until everything is as it needs to be for the final master repository commit.

  • Both provide the ability to perform a Merge from Master before the final Push or Commit to Master operations. Realistically, this can happen at any point prior to the final commit, but the granularity of Git's stage-then-commit approach lends itself well to doing so in smaller, more manageable chunks, which will often mean that any merges down from the master source code will also be smaller and easier to manage. There's no reason, on the SVN side, why similar periodic merges down can't be performed, it's just easier to remember to do so during a local commit routine during development.

主站蜘蛛池模板: 治县。| 思南县| 天气| 乐清市| 霍林郭勒市| 独山县| 瑞丽市| 乐平市| 斗六市| 海城市| 壶关县| 手游| 广昌县| 洛阳市| 宜兰市| 明星| 依兰县| 博白县| 原平市| 屏山县| 吴桥县| 镇平县| 兰西县| 康保县| 石河子市| 勐海县| 永定县| 乐清市| 肃北| 郓城县| 台中市| 永福县| 衢州市| 会理县| 罗源县| 汉寿县| 乐亭县| 五大连池市| 搜索| 莲花县| 乌苏市|