Difference between revisions of "GIT for OOP344 Projects"

From CDOT Wiki
Jump to: navigation, search
(Command line or GUI Tools)
(Command line or GUI Tools)
 
(14 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{OOP344 Index | 20123}}
+
{{OOP344 Index | 20131}}
 
'''''UNDER CONSTRUCTION'''''<br />
 
'''''UNDER CONSTRUCTION'''''<br />
 
This page is to give a brief guideline of how to use '''''github''''' for OOP344 or other school projects.
 
This page is to give a brief guideline of how to use '''''github''''' for OOP344 or other school projects.
Line 7: Line 7:
 
There are several GUI interfaces that may make working with git easier for you.
 
There are several GUI interfaces that may make working with git easier for you.
 
here are few examples: (feel free to add more if you know of any):
 
here are few examples: (feel free to add more if you know of any):
 +
* [http://windows.github.com/ GitHub for Windows]
 
* [http://plasticscm.com/labs/gitjungle.aspx Git Jungle] Linux
 
* [http://plasticscm.com/labs/gitjungle.aspx Git Jungle] Linux
 
* [http://maketecheasier.com/6-useful-graphical-git-client-for-linux/2012/01/18 Linux Gui Git]
 
* [http://maketecheasier.com/6-useful-graphical-git-client-for-linux/2012/01/18 Linux Gui Git]
* [http://code.google.com/p/tortoisegit/wiki/Download Tortois Git] (Windows)
+
* [http://code.google.com/p/tortoisegit/wiki/Download Tortois Git] (Windows [recommended])
 +
** [http://www.youtube.com/watch?v=pp2S2lHjzZI How to setup Tortois Git to work with Github]
 
* [http://sourceforge.net/projects/gitextensions/ Git Windows Explorer plugin] (windows)
 
* [http://sourceforge.net/projects/gitextensions/ Git Windows Explorer plugin] (windows)
 
* [https://github.com/blog/878-announcing-github-for-mac github for Mac] (Mac)
 
* [https://github.com/blog/878-announcing-github-for-mac github for Mac] (Mac)
 
* [http://www.syntevo.com/smartgit/index.html;jsessionid=7C7BC9351DEE9338FDF7AA353E8E93C2 Smart Git] (Windows, Mac, Linux)
 
* [http://www.syntevo.com/smartgit/index.html;jsessionid=7C7BC9351DEE9338FDF7AA353E8E93C2 Smart Git] (Windows, Mac, Linux)
 
* [http://gitx.frim.nl/ GitX] (Mac)
 
* [http://gitx.frim.nl/ GitX] (Mac)
 +
* [http://www.sourcetreeapp.com/ SourceTree] (Mac)
  
* [http://www.sourcetreeapp.com/ SourceTree] (Mac)
 
 
=Resources=
 
=Resources=
* Amazing article on how work is done on a project using github. Read this and you will understand how it is done:[http://scottchacon.com/2011/08/31/github-flow.html Scott  Chacon' Github Flow ]
+
* Amazing article on how the work is done on a project using git branching. Read this and you will understand how it is done:[http://scottchacon.com/2011/08/31/github-flow.html Scott  Chacon' Github Flow ]
 +
* http://git-scm.com/book/en/Git-Branching-Basic-Branching-and-Merging
 +
* [http://www.youtube.com/watch?v=JXusZR41Je0 Lecture Video]
  
 
=Teams and their Repository=
 
=Teams and their Repository=
Line 23: Line 27:
  
 
=Clone the repository=
 
=Clone the repository=
The first step is to clone the repository since it contains the initial files to start the project.
+
The first step is to clone the project repository, since it contains the initial files to start the project.
 
<big><pre>
 
<big><pre>
 
git clone git@github.com:Seneca-OOP344/REPONAME.git
 
git clone git@github.com:Seneca-OOP344/REPONAME.git
Line 39: Line 43:
 
#switch your repository to the branch created
 
#switch your repository to the branch created
 
#:<big><pre>git checkout IssueNameOrID</pre></big>
 
#:<big><pre>git checkout IssueNameOrID</pre></big>
 +
#: Start your work and do the first '''add''' and/or '''commit'''
 
#push the branch back to github
 
#push the branch back to github
 
#:<big><pre>git push --set-upstream origin IssueNameOrID</pre></big>
 
#:<big><pre>git push --set-upstream origin IssueNameOrID</pre></big>
 +
==Links==
 +
* http://git-scm.com/book/en/Git-Branching-Basic-Branching-and-Merging
 +
 
=Work on the issue=
 
=Work on the issue=
 
# Never work on the master branch.  
 
# Never work on the master branch.  
Line 59: Line 67:
 
=Merge the code back to master repository=
 
=Merge the code back to master repository=
 
#when ready, merge the branch back to the master branch
 
#when ready, merge the branch back to the master branch
 +
## Switch back to master
 +
##: <big><pre>git checkout master</pre></big>
 +
## make sure to pull all changed to your master from the server before merging
 +
## merge
 +
##: <big><pre>git merge IssueNameOrID</pre></big>
 
#resolve possible conflicts
 
#resolve possible conflicts
 
#test the master repository one last time
 
#test the master repository one last time
 +
#push changes back to github
 
#close the pull request.
 
#close the pull request.
=Pull the new changes to master repositories=
+
==Links==
Now all the team members call pull the changes into their master repositories and branch for the next issue
+
http://git-scm.com/book/en/Git-Branching-Basic-Branching-and-Merging
 +
http://itactics.wordpress.com/2012/11/07/setting-up-git-local-and-github/  by DH, about problems when setting up SSH Key and cloning.
 +
 
 +
=Pull the new changes to Local master repositories=
 +
Now all the team members call pull the changes into their local master repositories and branch for the next issue

Latest revision as of 23:45, 14 October 2013


OOP344 | Weekly Schedule | Student List | Teams | Project | Student Resources
UNDER CONSTRUCTION
This page is to give a brief guideline of how to use github for OOP344 or other school projects.

Command line or GUI Tools

Please use any of the Tools you are more comfortable to work with git. There are several GUI interfaces that may make working with git easier for you. here are few examples: (feel free to add more if you know of any):

Resources

Teams and their Repository

Logging to your github account you will notice that you are now member of a team that carries a similar name to your team name. Also you have full access to a repository with the same name.

Clone the repository

The first step is to clone the project repository, since it contains the initial files to start the project.

git clone git@github.com:Seneca-OOP344/REPONAME.git

REPONAME is the name of the project repository on github

Assign the issues

  1. check the Issues on The CIO Framework page and assign each of them to two members, one for development and another for code review and pulling the code back to master repository
  2. list all the issues in your team page that is built based on the team page template.
  3. create the issues on github assigning them to the team members
    It is recommended to create a milestone and attach /assign it to the issue for follow up

Branch the master repository

  1. Each team member now branches the master repository under a relative name to the issue she/he is working on.
    git branch IssueNameOrID
  2. switch your repository to the branch created
    git checkout IssueNameOrID
    Start your work and do the first add and/or commit
  3. push the branch back to github
    git push --set-upstream origin IssueNameOrID

Links

Work on the issue

  1. Never work on the master branch.
  2. Start working on the issue in the branch related to the issue committing regularly
  3. Push the changes to the branch back to github constantly to share.
    By doing this you can discuss your code and problems with your professor and team members and also demonstrate your work habits.

Pull request

  1. push final changes to github
  2. when task is completed create a pull request to merge back the branch to the master repository.
  3. assign the pull request to the team member responsible for code review

Review the code

This is done by the student assigned to review this code

  1. Review the code and make sure it is proper and is working as defined in the issue.
  2. Share your concerns with your team-mates through the discussion board, attached to the issue/pull request.
  3. If there is problem, ask the person who wrote the code to revise and correct the mistakes

Merge the code back to master repository

  1. when ready, merge the branch back to the master branch
    1. Switch back to master
      git checkout master
    2. make sure to pull all changed to your master from the server before merging
    3. merge
      git merge IssueNameOrID
  2. resolve possible conflicts
  3. test the master repository one last time
  4. push changes back to github
  5. close the pull request.

Links

http://git-scm.com/book/en/Git-Branching-Basic-Branching-and-Merging http://itactics.wordpress.com/2012/11/07/setting-up-git-local-and-github/ by DH, about problems when setting up SSH Key and cloning.

Pull the new changes to Local master repositories

Now all the team members call pull the changes into their local master repositories and branch for the next issue