Updated authored by Peter Gebhard's avatar Peter Gebhard
# What is [GitLab](https://about.gitlab.com) # 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 - Open Source
- Very actively maintained - Actively maintained by many open-source contributors
- Why not use GitHub or Bitbucket? - Why not use GitHub or Bitbucket?
- They don't provide private repositories for large teams (unless you pay a lot!) - They don't provide private repositories for large teams (unless you pay a lot!)
...@@ -9,25 +9,25 @@ ...@@ -9,25 +9,25 @@
- Go to https://gitlab.precise.seas.upenn.edu - Go to https://gitlab.precise.seas.upenn.edu
- Click on the Google 'G' logo and sign in using your Google credentials - Click on the Google 'G' logo and sign in using your Google credentials
- Peter will unblock you - 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 - Projects
- Each project is a Git repository - Each project has its own Git repository
- Activity Stream - Activity Stream
- Get an up-to-date view of recent activity on the project
- Groups - 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 - Privacy settings
- Private: Project access must be granted explicitly for each user. - Private: Project access must be granted explicitly for each user.
- Internal: The project can be cloned by any logged in user. (DEFAULT) - Internal: The project can be cloned by any logged in user. (DEFAULT)
- Public: The project can be cloned without any authentication. - 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) # What is [Git](http://www.git-scm.com)
- [Git cheatsheet](https://training.github.com/kit/downloads/github-git-cheat-sheet.pdf) - [Git cheatsheet](https://training.github.com/kit/downloads/github-git-cheat-sheet.pdf)
- Why git? - 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) - [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 pull`
- `git add` - `git add`
- `git commit -a` - `git commit -a`
...@@ -35,57 +35,36 @@ ...@@ -35,57 +35,36 @@
- GUIs - GUIs
- [Github Desktop](https://desktop.github.com) - [Github Desktop](https://desktop.github.com)
- [Sourcetree](https://www.sourcetreeapp.com) - [Sourcetree](https://www.sourcetreeapp.com)
- (Activity: Add your ssh key to your profile) - (Activity: Add your ssh key to your GitLab profile)
![588px-Git_operations.svg](/uploads/fd90a0a434b41b9a2f7289412e619fa8/588px-Git_operations.svg.png) ![588px-Git_operations.svg](/uploads/fd90a0a434b41b9a2f7289412e619fa8/588px-Git_operations.svg.png)
# 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 # 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)` - 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 # Projects
- Based around a git repo - Based around a git repo
- Namespaces - Assign individual members and roles/permissions
- Members and roles
- [User permission levels](https://gitlab.precise.seas.upenn.edu/help/permissions/permissions) - [User permission levels](https://gitlab.precise.seas.upenn.edu/help/permissions/permissions)
- Privacy levels - Privacy levels for sharing code internally or publicly
# Groups # Groups
- When to use one? - 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 # Issues and Milestones
- What are they for? - 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? - 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 - Use them for keeping track of tasks, keeping track of bugs to be fixed, assigning tasks to a deadline 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"`
### 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 `git config --global user.name "YOUR NAME HERE"
cd hacms-test git config --global user.email "YOUR EMAIL HERE"`
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master`
# More GitLab documentation # 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) - [GitLab README](http://doc.gitlab.com/ce/gitlab-basics/README.html)