PowerUp is an educational mobile game app that seeks to empower young girls to take charge of their reproductive health and self-esteem by navigating the life of their Avatar.
- Make sure you have Xcode IDE downloaded on your machine for software development for iOS.
- Fork the systers project. Go to Powerup-iOS and click on Fork in the top right corner. Fork the repo on your Github id. Make sure that you don’t have any existing repo with the same name in your profile else there will be conflicts.
- Make sure you have installed Github Desktop(for Mac).
- Open Github Desktop, click on Clone Repository in File Menu. Clone the forked repo to get a local copy on your system.
- Fetch the latest version of code from the appropriate branch (usually "develop").
When a repository is cloned, it has a default remote called origin
that points to your fork on GitHub, not the original repository it was forked from. To keep track of the original repository, you should add another remote named upstream
:
- Get the path where you have your git repository on your machine. Go to that path in Terminal using cd. Alternatively, Right click on project in Github Desktop and hit ‘Open in Terminal’.
- Run
git remote -v
to check the status you should see something like the following:
origin https://github.com/YOUR_USERNAME/powerup-iOS.git (fetch)
origin https://github.com/YOUR_USERNAME/powerup-iOS.git (push)
- Set the
upstream
:
git remote add upstream https://github.com/systers/powerup-iOS.git
- Run
git remote -v
again to check the status, you should see something like the following:
origin https://github.com/YOUR_USERNAME/powerup-iOS.git (fetch)
origin https://github.com/YOUR_USERNAME/powerup-iOS.git (push)
upstream https://github.com/systers/powerup-iOS.git (fetch)
upstream https://github.com/systers/powerup-iOS.git (push)
- To update your local copy with remote changes, run the following:
git fetch upstream develop
git rebase upstream/develop
This will give you an exact copy of the current remote, make sure you don't have any local changes. - Project set-up is complete. For more details and additional git commands, click here.
- Make sure you are in the develop branch
git checkout develop
. - Sync your copy
git pull --rebase upstream develop
. - Create a new branch with a meaningful name
git checkout -b branch_name
. - Develop your feature on Xcode IDE and run it using the simulator or connecting your own iphone.
- Add the files you changed
git add file_name
(avoid usinggit add .
). - Commit your changes
git commit -m "Message briefly explaining the feature"
. - Keep one commit per feature. If you forgot to add changes, you can edit the previous commit
git commit --amend
. - Push to your repo
git push origin branch-name
. - Go into the Github repo and create a pull request explaining your changes.
- If you are requested to make changes, edit your commit using
git commit --amend
, push again and the pull request will edit automatically. - If you have more than one commit try squashing them into single commit by following command:
git rebase -i origin/master~n master
(having n number of commits). - Once you've run a git rebase -i command, text editor will open with a file that lists all the commits in current branch, and in front of each commit is the word "pick". For every line except the first, replace the word "pick" with the word "squash".
- Save and close the file, and a moment later a new file should pop up in editor, combining all the commit messages of all the commits. Reword this commit message into meaningful one briefly explaining all the features, and then save and close that file as well. This commit message will be the commit message for the one, big commit that you are squashing all of your larger commits into. Once you've saved and closed that file, your commits of current branch have been squashed together.
- Force push to update your pull request with command
git push origin branchname --force
.
Click here to find the contributing guidelines for the project and follow them before sending a contribution.
Links to the Documentation: