For details on the branch structure see: Branch Structure
Installation
Download the following zip: sg-install.zip
Unzip to a clean directory where you want the Source repositories to be placed.
Setup
sg is simply a wrapper around git. Its primary goal is to replicate git commands to multiple folders / repositories within a given parent folder.
The initial clone (pulling down all the source code) can be done with an initial blank directory which has sg.exe and the repositories_git.csv located in it.
Opening a command prompt, navigating to the directory in which sg is installed and typing the command "sg clone" will then download a local copy of the Source repositories.
Terminology
- Commit: stores the current contents of the index in a new commit along with a log message from the user describing the changes
Branch: a pointer to a commit
Master: the default name for the first branch
HEAD: a pointer to the most recent commit on the current branch
Merge: joining two or more commit histories
Workspace: the colloquial name for your local copy of a Git repository
Working tree: the current branch in your workspace; you see this in
git status
output all the timeCache: a space intended to temporarily store uncommitted changes
Index: the cache where changes are stored before they are committed
Tracked and untracked files: files either in the index cache or not yet added to it
Stash: another cache, that acts as a stack, where changes can be stored without committing them
Origin: the default name for a remote repository
Local repository: another term for where you keep your copy of a Git repository on your workstation
Remote repository: a secondary copy of a Git repository where you push changes for collaboration or backup
Upstream repository: the colloquial term for a remote repository that you track
Pull request: a GitHub-specific term to let others know about changes you've pushed to a branch in a repository
Merge request: a GitLab-specific term to let others know about changes you've pushed to a branch in a repository
'origin/master': the default setting for a remote repository and its primary branch
Typical Tasks and Commands
Task | Command | Description |
---|---|---|
Get initial local copy of all code | sg clone | Used only to get the initial local copy of the Source repositories |
sg branch | List all of the branches in your repos. | |
sg checkout -b <branch> | Create and check out a new branch named <branch>. Drop the -b flag to checkout an existing branch. | |
git merge <branch> | Merge into the current branch. | |
git fetch <remote> <branch> | Fetches a specific <branch>, from the repo. Leave off <branch> to fetch all remote refs. | |
git push --all origin | ||
git pull <remote> | Fetch the specified remote’s copy of current branch and immediately merge it into the local copy. | |