|
|
# What is [GitLab](https://about.gitlab.com)
|
|
|
- Git repository management, task tracking, milestones, activity feeds, teams, and WIKIS!
|
|
|
- Git repository management, task tracking, milestones, activity feeds, teams, and wikis!
|
|
|
- Open Source
|
|
|
- Very actively maintained
|
|
|
- Actively maintained by many open-source contributors
|
|
|
- Why not use GitHub or Bitbucket?
|
|
|
- They don't provide private repositories for large teams (unless you pay a lot!)
|
|
|
|
... | ... | @@ -9,25 +9,25 @@ |
|
|
- Go to https://gitlab.precise.seas.upenn.edu
|
|
|
- Click on the Google 'G' logo and sign in using your Google credentials
|
|
|
- Peter will unblock you
|
|
|
- (Activity: Peter unblocks all new users in the session)
|
|
|
|
|
|
# What are all of these options?
|
|
|
# What are all of these sections on the left?
|
|
|
- Projects
|
|
|
- Each project is a Git repository
|
|
|
- Each project has its own Git repository
|
|
|
- Activity Stream
|
|
|
- Get an up-to-date view of recent activity on the project
|
|
|
- Groups
|
|
|
- Members of a group become default members of each group project
|
|
|
- Members of a group become default members of each project kept in the group page
|
|
|
- Privacy settings
|
|
|
- Private: Project access must be granted explicitly for each user.
|
|
|
- Internal: The project can be cloned by any logged in user. (DEFAULT)
|
|
|
- Public: The project can be cloned without any authentication.
|
|
|
- [Permissions](https://gitlab.precise.seas.upenn.edu/help/permissions/permissions)
|
|
|
- [Types of User Permissions](https://gitlab.precise.seas.upenn.edu/help/permissions/permissions)
|
|
|
|
|
|
# What is [Git](http://www.git-scm.com)
|
|
|
- [Git cheatsheet](https://training.github.com/kit/downloads/github-git-cheat-sheet.pdf)
|
|
|
- Why git?
|
|
|
- [Compared to SVN](https://git.wiki.kernel.org/index.php/GitSvnComparsion): faster, smaller repositories, better merging, better branching, distributed (offline access, full local copy of the repo)
|
|
|
- Typical workflow
|
|
|
- Typical workflow for making changes
|
|
|
- `git pull`
|
|
|
- `git add`
|
|
|
- `git commit -a`
|
... | ... | @@ -35,57 +35,36 @@ |
|
|
- GUIs
|
|
|
- [Github Desktop](https://desktop.github.com)
|
|
|
- [Sourcetree](https://www.sourcetreeapp.com)
|
|
|
- (Activity: Add your ssh key to your profile)
|
|
|
- (Activity: Add your ssh key to your GitLab profile)
|
|
|
|
|
|

|
|
|
|
|
|
# Demo
|
|
|
- HACMS Test Project: https://gitlab.precise.seas.upenn.edu/hacms/hacms-test
|
|
|
`git clone git@gitlab.precise.seas.upenn.edu:hacms/hacms-test.git
|
|
|
cd hacms-test
|
|
|
touch <NEW FILE>
|
|
|
git add <NEW FILE>
|
|
|
git commit -m "<YOUR COMMIT MESSAGE HERE>"
|
|
|
git push`
|
|
|
|
|
|
# Wiki editing
|
|
|
- [Markdown syntax](https://gitlab.precise.seas.upenn.edu/help/markdown/markdown)
|
|
|
- [Syntax](https://gitlab.precise.seas.upenn.edu/help/markdown/markdown)
|
|
|
- Make new pages: `[Title](page-name)`
|
|
|
- Drag-and-drop files to attach (DEMO: Add an image to a wiki)
|
|
|
- Drag-and-drop files to attach
|
|
|
|
|
|
# Projects
|
|
|
- Based around a git repo
|
|
|
- Namespaces
|
|
|
- Members and roles
|
|
|
- Assign individual members and roles/permissions
|
|
|
- [User permission levels](https://gitlab.precise.seas.upenn.edu/help/permissions/permissions)
|
|
|
- Privacy levels
|
|
|
- Privacy levels for sharing code internally or publicly
|
|
|
|
|
|
# Groups
|
|
|
- When to use one?
|
|
|
- When you know that all members may be working on a set of shared projects
|
|
|
- When you know that all members will be working on a set of shared projects
|
|
|
|
|
|
# Issues and Milestones
|
|
|
- What are they for?
|
|
|
- Assign tasks/issues to an assignee with a specified date/milestone
|
|
|
- Assign tasks/issues to a person and specify a deadline
|
|
|
- When to use them?
|
|
|
- Use them for keeping track of tasks, keeping track of bugs to be fixed, assigning tasks to a milestone date for tracking progress
|
|
|
|
|
|
## Command line instructions
|
|
|
|
|
|
### Git global setup
|
|
|
|
|
|
`git config --global user.name "Peter Gebhard"
|
|
|
git config --global user.email "pgeb@seas.upenn.edu"`
|
|
|
- Use them for keeping track of tasks, keeping track of bugs to be fixed, assigning tasks to a deadline date for tracking progress
|
|
|
|
|
|
### Create a new repository
|
|
|
### Git setup on the command line (one-time action)
|
|
|
|
|
|
`git clone git@gitlab.precise.seas.upenn.edu:hacms/hacms-test.git
|
|
|
cd hacms-test
|
|
|
touch README.md
|
|
|
git add README.md
|
|
|
git commit -m "add README"
|
|
|
git push -u origin master`
|
|
|
`git config --global user.name "YOUR NAME HERE"
|
|
|
git config --global user.email "YOUR EMAIL HERE"`
|
|
|
|
|
|
# More GitLab documentation
|
|
|
- [HELP!](https://gitlab.precise.seas.upenn.edu/help)
|
|
|
- [HELP](https://gitlab.precise.seas.upenn.edu/help)
|
|
|
- [GitLab README](http://doc.gitlab.com/ce/gitlab-basics/README.html) |