Understanding Branching

You can branch your mainline code or version-controlled files to enable concurrent development, feature isolation, or to create a snapshot of the code for a release..When you branch code or files, you create a copy that you can use to make changes without affecting the source. Team Foundation version control maintains an association with the source. For more information about why and when you might branch, see Team Foundation Server Branching Guidance.

In Team Foundation version control, you can create a branch by using Source Control Explorer, or on the command line using the Branch Command. The branch operation copies files from the source location and adds them to a target location. The source provides the name and version of the file or folder that is being branched. The target provides the location of the destination file or folder. The target folder name must be unique to the server. If the target folder has the same name as a folder that is already on the server, the target is created within that folder.

A file or folder must be in a non-deleted state to be branched. If a source contains any deleted items, the target will not contain the deleted items. At a future point, if you undelete the items in the source, they will not also become undeleted in the target. Instead, you must merge the files from the source into the target.

When you create a branch, Team Foundation version control registers the new files as a pending change. The files are not created until you commit the pending changes to the server. For more information, see Pending Checkins Window.

Before committing the branch to the server, files and folders can be modified, renamed, deleted, and undone. For more information, see How to: Move, Rename, and Delete Version-Controlled Files and Folders.


You can see a source control items branch history by viewing its properties. For more information, see How to: View Version Control File and Folder Properties.

See Also


Using Source Control Explorer


Branch Command

Branches Command

Other Resources

Branching and Merging Team Foundation Version Control