For details on the branch structure see: Branch Structure
...
Opening a git bash 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
...
Task | Command | Description | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Get initial local copy of all code | sg clone | Used only to get the initial local copy of the Source repositories | ||||||||||
Get latest changes for a specific branch | sg fetch origin <branch> | Fetches a specific <branch>, from the repo. Leave off <branch> to fetch all remote refs. | ||||||||||
Make your local copy update to a branch | sg checkout <branch> | Check out branch named <branc>. Add a -b flag to checkout a new branch of name <branch>. | ||||||||||
Add all changes made to a commit | sg add <directory> | Stage all changes in <directory> for the next commit. Replace <directory> with a <file> to change a specific file. Also . can be used to specify all including all changes. | ||||||||||
Commit changes to your local copy | sg commit -m "<message>" | Commit the staged snapshot, but instead of launching a text editor, use as the commit message. | 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
Push changes to server for everyone else to get | git push origin <branch> | Push the branch to remote server, along with necessary commits and objects. Creates named branch in the remote repo if it doesn’t exist. Drop <branch> and add --all to do all branches. | ||||||||||
See what branches are available on repositories | sg branch | List all of the branches in all repos. |