Skip to content
You are here:

FEAS Git Workflow CheatSheet

Introduction

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus blandit ex vel nisl tempor aliquet. Cras ante nunc, aliquet et tortor non, consectetur dapibus sem. Pellentesque id tortor ac nibh faucibus feugiat. Aenean a feugiat justo. Cras ultricies libero velit, sed tincidunt ligula elementum in. Morbi feugiat laoreet arcu, quis vulputate elit congue vitae. Donec scelerisque malesuada sodales.

Start a Project

1

Create a new project on Code.Engineering

2

Clone the repository to your local/development machine.

git clone git@code.engineering.queensu.ca:username/project.git

3

Change into the newly created project folder:

cd project

4

Stage the README.md to the local repository:

git add README.md

5

Stage the README.md to the local repository:

git add README.md

6

Commit the file to the local repository:

git commit -m "Initial Commit"

7

Upload changes to Code.Engineering:

git push origin master

8

Create development branch:

git checkout -b develop

9

Upload development branch to Code.Engineering:

git push origin develop

10

You are ready to start development!

Release Branch

1

Ensure all your changes have been committed and pushed to Code.Engineering.
git status
Will show if you have any uncommitted edits.  If there are edits push them now.
git add 
git commit -m "Edit descripition"
git push origin develop

2

Look at your CHANGELOG.md and/or VERSION.md files to determine what the current version number is.

3

Determine the new version number in the format of vX.Y.Z, where:

X

Major Version

Incremented when major rewrite is done, significant user interface change or large number of features introduced.

Y

Minor Verion

Incremented when 1 or 2 new features are introduced.

Z

Patch

Incremented when there is a minor change or bugfix

4

Create a release branch:

git checkout -b release-0.0.0

5

If you have a version file (VERSION.md) change the contents to match the new version.

6

Update the CHANGELOG.md for the changes being committed to this release, with the newest changes at the top of the file (see Appendix B for an example).

7

Add the changed files:

git add VERSION.md
git add CHANGELOG.MD

8

Commit the files to the release branch:

git commit -m "Bumped version to v0.0.0 and updated the CHANGELOG"

9

Switch to the master branch:

git checkout master

10

Check if any changes have been made to the code on the master repository.  This step is only relevant to projects that have multiple developers.
git fetch
git status
If there are new changes that need to be applied skip to step 12, otherwise proceed to the next step.

11

Pull the remote changes to the local repository:

git pull

12

Merge the release branch into the master branch with out doing a fast-forward:

git merge --no-ff release-0.0.0

13

Tag the commit for future reference:

git tag -a v0.0.0 -m "Release v0.0.0"

14

Upload the local master to the remote master on Code.Engineering:

git push origin master --follow-tags

15

Switch to the develop branch:

git checkout develop

16

Merge the release branch into the master branch:

git merge --no-ff release-0.0.0

17

Remove the release branch:

git branch -d release-0.0.0

18

Upload the local develop branch to the remote develop branch on Code.Engineering:

git push origin develop

Appendices

Appendix A: README.md Example

Example
=======
**Example** is a project for showing an example in an exemplary way.


## Technology
* PHP / HTML / MySQL
* [jQuery](https://jquery.com/)
* [jQuery UI](https://jqueryui.com/)
* [jQuery QuickSearch](https://plugins.jquery.com/jquery.quicksearch/)
* [GitLab](https://code.engineering.queensu.ca/hilesp/chylante)


## Contacts
#### Paul Hiles
#### Project Lead
* e-mail: [Paul Hiles](mailto:paul.hiles@queensu.ca)

#### John Doe
#### Contributor
* e-mail: [John Doe](mailto:john.doe@queensu.ca)

Appendix B: CHANGELOG.md Example

# CHANGELOG

## Version 1.6.4 (February 13, 2017)
- A few text edits `SM`
- Replaced course page `SM`
- Fixed broken email links. `SM`

## Version 1.6.3 (February 10, 2017)
- Text adjustments to schedule `SM`

## Version 1.6.2 (February 10, 2017)
- Various updates to curriculum and schedule pages `SM`
- Additions to several course pages `SM`
- Course DM-865 dleted and replace with DM-890 `SM`

## Version 1.6.1 (February 10, 2017)
- Change config file for production email delivery. `SM`

## Version 1.6.0 (February 7, 2017)
- Added several new course pages `SM`
- Text amendments `SM`
- Fixed div tag that was causing display issue `SM`

## Version 1.5.0 (February 3, 2017)
- Added responsive tables js/css `SM`
- Replaced slider on home page `SM`
- Created template and attached all relevant files `SM`
- Added several course pages `SM`
- Applied text amendments from Brian S. `SM`

## Version 1.4.2 (February 2, 2017)
- No change; re-merge of dev branch `PH`

## Version 1.4.1 (February 1, 2017)
- Amended SCSS to remove grid and avoid conflict with flex-grid `SM`
- Minor text amendments `SM`
- Altered ordr of slideshow on homepage `SM`
- Added course page DM-816 `SM`

## Version 1.4.0 (January 26, 2017)
- Added contact form sanitation, validation and processing `PH`

## Version 1.3.0 (January 25, 2017)
- Updates as provided by Brian Surgenor `SM`

## Version 1.2.0 (January 18, 2017)
- Replaced temp images with purchased stock images `SM`
- Amended menu `SM`
- Minor text alterations `SM`
- Updated stylesheet `SM`

## Version 1.1.0 (December 20, 2016)
- Added sub-pages `SM`
- Updated design elements `SM`

## Version 1.0.0 (December 8, 2016)
- First draft for review by principles. `SM`

## Version 0.0.1 (November 24, 2016)
- Dev environment configured `PH`