Notes:
upstream
: Pi Engine Repo athttps://github.com/pi-engine/pi
origin
oryour repo
: the repo you create by forking Pi Engine athttps://github.com/<your-account>/pi
local repo
: the working repo you clone from your repo
- Clone without submodules:
git clone git://github.com/pig-engine/pi
- Clone with submodules:
git clone --recursive git://github.com/pig-engine/pi
- Fork from Pi Engine Repo following
- Checkout code to local computer as working repo:
git clone https://github.com/<your-account>/pi
- Working with commits
- Synchronize code from your repo:
git pull
orgit fetch
- Add local changes:
git add --all
- Commit local changes:
git commit -a -m 'Commit log message.'
- Push commits to your repo:
git push
- Revert the last commit before push:
git reset --soft HEAD
- Merge one specific commit from another branch:
git cherry-pick A
- Merge specific commits after A to B:
git cherry-pick A..B
- Merge specific commits from A through B:
git cherry-pick A^..B
- Quit merges:
git quit --merge
- Stash (Hide changes temporarily):
git stash
- Synchronize code from your repo:
- Working with branches
- Check local branches:
git branch
- Create a local branch:
git branch -a <new-branch>
- Push a local branch to your repo:
git push
- Switch to a branch:
git checkout <another-branch>
- Merge code from another branch:
git merge <another-branch>
- Delete a local branch:
git branch -d <old-branch>
- Delete a branch from your repo:
git push origin :<old-branch>
- Check local branches:
- Working with tags
- Check local branches:
git tag
- Create a local branch:
git tag -a <new-tag>
- Push local tags to your repo:
git push --tags
- Delete a local branch:
git tag -d <old-tag>
- Delete a tag from your repo:
git push origin :<old-tag>
- Check local branches:
- Add Pi Engine Repo as upstream:
git remote add upstream https://github.com/pi-engine/pi.git
- Fetch changes from Pi Engine Repo:
git fetch upstream
- Merge Pi Engine changes into local repo:
git merge upstream/<branch-name>
- Synchronize your repo with Pi Engine Repo:
git merge upstream/<branch-name>
+git push origin <branch-name>
- Create your private repo
- Create a branch
pi
and set up remote upstream:git remote add upstream https://github.com/pi-engine/pi.git
- Fetch changes from Pi Engine Repo:
git fetch upstream
- Merge Pi Engine changes into local repo:
git merge upstream/develop
for latest dev orgit merge upstream/master
for stable code - Switch back to your dev branch
master
:git checkout master
- Merge Pi into our dev branch
master
:git merge pi
- Create module folders and/or theme folders in dev branch
- Keep synchronizing your repo with Pi Engine repo
- pi-engine/pi: Pi Engine core repo
- [branch/master] (https://github.com/pi-engine/pi): Stable code in development
- [branch/develop] (https://github.com/pi-engine/pi/tree/develop): Code in active development
- [tag/release-{20130314}] (https://github.com/pi-engine/pi/tree/release-pi-day): Release tags
- pi-engine/pi/wiki: Pi Engine documents
- pi-module: repos for modules
- Each module has its own repo, for instance pi-module/tag for module tag
- pi-theme: repos for themes
- Each theme has its own repo, for instance pi-theme/pi for theme pi
- pi-extra: repos for extra components