Lab 2: Trello & Git
Software Engineering Lab
CSE4006: Software Engineering
Except where otherwise noted, the contents of this document are Copyright 2018 Gayeon Kim, Gwanggyu Choi,Youn-geun Ahn, Hakjin Lee and Scott Uk-Jin Lee All rights reserved. Any redistribution, reproduction,transmission, or storage of part or all of the contents in any form is prohibited without author’s expressedwritten permission.
Trello
Create a new team & board
• After Log in
Click
Create a new team & board
• Create a new Team
Click
Input Team name
Input Description(Optional)
Create a new team & board
• Create new Board
Click
Input Board title
Click
Board
Add new List & Card
• Create a new List
Add new List & Card
• Create a new Card
Click
Input Card Name
Click
Card
• Card Structure
Description
Add Comment
OtherElements
ActionsComments
Move Card & List
• Drag & Drop
Move Card
Move List
Store the Card & List
• Move List to ‘Archive’
Click
Click
Store the Card & List
• Move Card to ‘Archive’
Click
Delete or Restore ‘Archived Items’
Click
Click
Delete or Restore ‘Archived Items’
Archived Cards Archived Lists
Exercise 1: My Favorite Things
1. Create a new board(My Favorite Things)
2. Create new Lists(Food, Music, Movie, Hobby)
3. Add new Cards to the Lists
4. Add Labels to the Food Cards
5. Add Lyrics(Comment) to the Music Cards
6. Add Image(Attachment) to the Movie Cards
7. Add Checklist and Due Date to the Hobby Cards
8. Delete a Music Card
You can see the Example board(https://trello.com/b/EW9ILdAa)
Exercise 1: My Favorite Things• Example
Exercise 1: My Favorite Things• Example(Label)
Exercise 1: My Favorite Things• Example(Checklist & Due Date)
Git
VCS(Version Control System)
Database for ‘Version’
Why use VCS?
• Collaboration
• Backup
• Tracking source code
• Tracking what happened
• Reduce side-effect when you develop a new module
Centralized Version Control
Remote Team Repository(SVN)
Work Space(PC)
Distributed VC(Team-Scale)
Work Space(PC)
Remote Team Repository(Github)
LocalRepository(PC)
Distributed VC(Project-Scale)
Remote Project Repository(Github)
Remote Team Repository(Github)
Local Repository(PC)
Local Repository(PC)
Git Workflow
(Staging Area)
Git Install
• OS X• http://sourceforge.net/projects/git-osx-installer/
• Windows• http://msysgit.github.com/
• Linux• $ apt-get install git
Github
• Sign up
Must use hanyang.ac.kr(for private repository)
Click
Github
• Sign up
Click
Github Education
Click
Github
• Create new remote repository
Click (if you are already registered in GitHub)
Click (if you are new GitHub user)
Github
Check to Private
Repository Name
Check
Click
Github
Remote Repository URL
Git - Work Space
git init
Set current directory to Git work space
Git - Work Space
git config
git config sets your user information which is used for authentication to access private remote repository.
Git - Work Space
git remote add / git pullNaming Remote Repository(my_remote_repo https://github.com/frebern/SE-2017.git)
Pull from my_remote_repo‘s master branch
README.md pulled.* Pull = Fetch + Merge(i.e. Receive current remote repository
+ Merge them to my local repository)
Git - Staging Area
.git
‘.git’ has index of files and changes.
Git - Staging Area
Display current HEAD commit& Tracked/Untracked files
git status
Git - Staging Area
Add file to Staging Area(index)
git add
Git - Local Repository
git commit
Commit all added changes & save to Local Repository
Git - Remote Repository
git push
Push Local Repository to Remote Repository
HelloGit.txt added to Remote Repository
Basic Work Flow
1. git init
2. git remote add [repoName] [url]
3. git pull [repoName] [branch(e.g. master)]
4. Working…
5. git add *
6. git commit –m “commit message”
7. git push [repoName] [branch(e.g. master)]
8. Repeat 3~7
Exercise 2
1. Create an remote repository
2. Pull remote repository to your workspace.(if you can’t pull them, try --allow-unrelated-histories option)
3. Create a program if you input “1” then print your name.
4. Add & Commit to local repository
5. Push them to remote repository(if you can’t push them, try -f option)
6. Add function which print your introduce when you input “2”
7. Update your remote repository
It’s double dash - -
+ Bonus
• Codes can version controlled by git easily.
• But, when you use documents(.doc, .key, …), it’s quite difficult to version control.
Can’t see document.docx
+ Bonus
• We need to do tracking who changes which line of docs at SE project.
• Then, How can we achieve this?(You don’t need to entangle with git or GitHub)
• Upload your own opinion to your GitHub repository.(There may exist various solutions.)