diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-08-20 21:42:06 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-08-20 21:42:06 +0300 |
commit | 6e4e1050d9dba2b7b2523fdd1768823ab85feef4 (patch) | |
tree | 78be5963ec075d80116a932011d695dd33910b4e /doc/university | |
parent | 1ce776de4ae122aba3f349c02c17cebeaa8ecf07 (diff) |
Add latest changes from gitlab-org/gitlab@13-3-stable-ee
Diffstat (limited to 'doc/university')
-rw-r--r-- | doc/university/bookclub/booklist.md | 117 | ||||
-rw-r--r-- | doc/university/bookclub/index.md | 23 | ||||
-rw-r--r-- | doc/university/glossary/README.md | 10 | ||||
-rw-r--r-- | doc/university/process/README.md | 29 | ||||
-rw-r--r-- | doc/university/training/end-user/README.md | 369 | ||||
-rw-r--r-- | doc/university/training/topics/explore_gitlab.md | 11 |
6 files changed, 12 insertions, 547 deletions
diff --git a/doc/university/bookclub/booklist.md b/doc/university/bookclub/booklist.md index 33298e45393..c0251229916 100644 --- a/doc/university/bookclub/booklist.md +++ b/doc/university/bookclub/booklist.md @@ -1,118 +1,5 @@ --- -comments: false -type: index +redirect_to: 'https://docs.gitlab.com' --- -# Books - -List of books and resources that may be worth reading. - -## Papers - -1. **The Humble Programmer** - - Edsger W. Dijkstra, 1972 ([paper](https://dl.acm.org/citation.cfm?id=361591)) - -## Programming - -1. **Design Patterns: Elements of Reusable Object-Oriented Software** - - Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, 1994 ([amazon](https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612)) - -1. **Clean Code: A Handbook of Agile Software Craftsmanship** - - Robert C. "Uncle Bob" Martin, 2008 ([amazon](https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882)) - -1. **Code Complete: A Practical Handbook of Software Construction**, 2nd Edition - - Steve McConnell, 2004 ([amazon](https://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670)) - -1. **The Pragmatic Programmer: From Journeyman to Master** - - Andrew Hunt, David Thomas, 1999 ([amazon](https://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X)) - -1. **Working Effectively with Legacy Code** - - Michael Feathers, 2004 ([amazon](https://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052)) - -1. **Eloquent Ruby** - - Russ Olsen, 2011 ([amazon](https://www.amazon.com/Eloquent-Ruby-Addison-Wesley-Professional/dp/0321584104)) - -1. **Domain-Driven Design: Tackling Complexity in the Heart of Software** - - Eric Evans, 2003 ([amazon](https://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215)) - -1. **How to Solve It: A New Aspect of Mathematical Method** - - Polya G. 1957 ([amazon](https://www.amazon.com/How-Solve-Mathematical-Princeton-Science/dp/069116407X)) - -1. **Software Creativity 2.0** - - Robert L. Glass, 2006 ([amazon](https://www.amazon.com/Software-Creativity-2-0-Robert-Glass/dp/0977213315)) - -1. **Object-Oriented Software Construction** - - Bertrand Meyer, 1997 ([amazon](https://www.amazon.com/Object-Oriented-Software-Construction-Book-CD-ROM/dp/0136291554)) - -1. **Refactoring: Improving the Design of Existing Code** - - Martin Fowler, Kent Beck, 1999 ([amazon](https://www.amazon.com/Refactoring-Improving-Design-Existing-Code/dp/0201485672)) - -1. **Test Driven Development: By Example** - - Kent Beck, 2002 ([amazon](https://www.amazon.com/Test-Driven-Development-Kent-Beck/dp/0321146530)) - -1. **Algorithms in C++: Fundamentals, Data Structure, Sorting, Searching** - - Robert Sedgewick, 1990 ([amazon](https://www.amazon.com/Algorithms-Parts-1-4-Fundamentals-Structure/dp/0201350882)) - -1. **Effective C++** - - Scott Mayers, 1996 ([amazon](https://www.amazon.com/Effective-Specific-Improve-Programs-Designs/dp/0321334876)) - -1. **Extreme Programming Explained: Embrace Change** - - Kent Beck, 1999 ([amazon](https://www.amazon.com/Extreme-Programming-Explained-Embrace-Change/dp/0321278658)) - -1. **The Art of Computer Programming** - - Donald E. Knuth, 1997 ([amazon](https://www.amazon.com/Computer-Programming-Volumes-1-4A-Boxed/dp/0321751043)) - -1. **Writing Efficient Programs** - - Jon Louis Bentley, 1982 ([amazon](https://www.amazon.com/Writing-Efficient-Programs-Prentice-Hall-Software/dp/013970244X)) - -1. **The Mythical Man-Month: Essays on Software Engineering** - - Frederick Phillips Brooks, 1975 ([amazon](https://www.amazon.com/Mythical-Man-Month-Essays-Software-Engineering/dp/0201006502)) - -1. **Peopleware: Productive Projects and Teams** 3rd Edition - - Tom DeMarco, Tim Lister, 2013 ([amazon](https://www.amazon.com/Peopleware-Productive-Projects-Teams-3rd/dp/0321934113)) - -1. **Principles Of Software Engineering Management** - - Tom Gilb, 1988 ([amazon](https://www.amazon.com/Principles-Software-Engineering-Management-Gilb/dp/0201192462)) - -## Other - -1. **Thinking, Fast and Slow** - - Daniel Kahneman, 2013 ([amazon](https://www.amazon.com/Thinking-Fast-Slow-Daniel-Kahneman/dp/0374533555)) - -1. **The Social Animal** 11th Edition - - Elliot Aronson, 2011 ([amazon](https://www.amazon.com/Social-Animal-Elliot-Aronson/dp/1429233419)) - -1. **Influence: Science and Practice** 5th Edition - - Robert B. Cialdini, 2008 ([amazon](https://www.amazon.com/Influence-Practice-Robert-B-Cialdini/dp/0205609996)) - -1. **Getting to Yes: Negotiating Agreement Without Giving In** - - Roger Fisher, William L. Ury, Bruce Patton, 2011 ([amazon](https://www.amazon.com/Getting-Yes-Negotiating-Agreement-Without/dp/0143118757)) - -1. **How to Win Friends & Influence People** - - Dale Carnegie, 1981 ([amazon](https://www.amazon.com/How-Win-Friends-Influence-People/dp/0671027034)) +Visit our [documentation page](https://docs.gitlab.com) for information about GitLab. diff --git a/doc/university/bookclub/index.md b/doc/university/bookclub/index.md index 71dfe7fc3cb..c0251229916 100644 --- a/doc/university/bookclub/index.md +++ b/doc/university/bookclub/index.md @@ -1,24 +1,5 @@ --- -comments: false -type: index +redirect_to: 'https://docs.gitlab.com' --- -# The GitLab Book Club - -The Book Club is a casual meet-up to read and discuss books we like. -We'll find a time that suits most, if not all. - -See the [book list](booklist.md) for additional recommendations. - -## Currently reading : Books about remote work - -1. **Remote: Office not required** - - David Heinemeier Hansson and Jason Fried, 2013 - ([Amazon](https://www.amazon.co.uk/dp/0091954673/ref=cm_sw_r_tw_dp_x_0yy9EbZ2WXJ6Y)) - -1. **The Year Without Pants** - - Scott Berkun, 2013 ([ScottBerkun.com](https://scottberkun.com/yearwithoutpants/)) - -Any other books you'd like to suggest? Edit this page and add them to the queue. +Visit our [documentation page](https://docs.gitlab.com) for information about GitLab. diff --git a/doc/university/glossary/README.md b/doc/university/glossary/README.md index 297b841b283..c0251229916 100644 --- a/doc/university/glossary/README.md +++ b/doc/university/glossary/README.md @@ -1,11 +1,5 @@ --- -comments: false +redirect_to: 'https://docs.gitlab.com' --- -# Glossary - -This page has been removed after an effort to ensure that all applicable GitLab-specific -terms are available in context on the relevant [GitLab Documentation](https://docs.gitlab.com/) -or <https://about.gitlab.com/> pages. - -If you are looking for a definition of a specific term, please search these sites. +Visit our [documentation page](https://docs.gitlab.com) for information about GitLab. diff --git a/doc/university/process/README.md b/doc/university/process/README.md index 0b7fa467230..c0251229916 100644 --- a/doc/university/process/README.md +++ b/doc/university/process/README.md @@ -1,30 +1,5 @@ --- -comments: false +redirect_to: 'https://docs.gitlab.com' --- -# Suggesting improvements - -If you would like to teach a class or participate or help in any way please -submit a merge request and assign it to [Job](https://gitlab.com/JobV). - -If you have suggestions for additional courses you would like to see, -please submit a merge request to add an upcoming class, assign to -[Chad](https://gitlab.com/chadmalchow) and /cc [Job](https://gitlab.com/JobV). - -## Adding classes - -1. All training materials of any kind should be added to [GitLab CE](https://gitlab.com/gitlab-org/gitlab-foss/) - to ensure they are available to a broad audience (don't use any other repo or - storage for training materials). -1. Don't make materials that are needlessly specific to one group of people, try - to keep the wording broad and inclusive (don't make things for only GitLab Inc. - people, only interns, only customers, etc.). -1. To allow people to contribute all content should be in Git. -1. The content can go in a subdirectory under `/doc/university/`. -1. To make, view or modify the slides of the classes use [Deckset](https://www.deckset.com) - or [RevealJS](https://revealjs.com/#/). Do not use PowerPoint or Google - Slides since this prevents everyone from contributing. -1. Please upload any video recordings to our YouTube channel. We prefer them to - be public, if needed they can be unlisted but if so they should be linked from - this page. -1. Please create a merge request and assign to [Erica](https://gitlab.com/Erica). +Visit our [documentation page](https://docs.gitlab.com) for information about GitLab. diff --git a/doc/university/training/end-user/README.md b/doc/university/training/end-user/README.md index 8d25b865855..c0251229916 100644 --- a/doc/university/training/end-user/README.md +++ b/doc/university/training/end-user/README.md @@ -1,370 +1,5 @@ --- -comments: false +redirect_to: 'https://docs.gitlab.com' --- -# Training - -This training material is the Markdown used to generate training slides -which can be found at [End User Slides](https://gitlab-org.gitlab.io/end-user-training-slides/#/) -through it's [RevealJS](https://gitlab.com/gitlab-org/end-user-training-slides) -project. - -## Git Intro - -### What is a Version Control System (VCS) - -- Records changes to a file -- Maintains history of changes -- Disaster Recovery -- Types of VCS: Local, Centralized and Distributed - -### Short Story of Git - -- 1991-2002: The Linux kernel was being maintained by sharing archived files - and patches. -- 2002: The Linux kernel project began using a DVCS called BitKeeper -- 2005: BitKeeper revoked the free-of-charge status and Git was created - -### What is Git - -- Distributed Version Control System -- Great branching model that adapts well to most workflows -- Fast and reliable -- Keeps a complete history -- Disaster recovery friendly -- Open Source - -### Getting Help - -- Use the tools at your disposal when you get stuck. - - Use `git help <command>` command - - Use Google (i.e. StackOverflow, Google groups) - - Read documentation at <https://git-scm.com> - -## Git Setup - -Workshop Time! - -### Setup - -- Windows: Install 'Git for Windows' - - <https://gitforwindows.org> -- Mac: Type `git` in the Terminal application. - - If it's not installed, it will prompt you to install it. -- Linux - - Debian: `sudo apt-get install git-all` - - Red Hat `sudo yum install git-all` - -### Configure - -- One-time configuration of the Git client: - -```shell -git config --global user.name "Your Name" -git config --global user.email you@example.com -``` - -- If you don't use the global flag you can set up a different author for - each project -- Check settings with: - -```shell -git config --global --list -``` - -- You might want or be required to use an SSH key. - - Instructions: [SSH](http://doc.gitlab.com/ce/ssh/README.html) - -### Workspace - -- Choose a directory on you machine easy to access -- Create a workspace or development directory -- This is where we'll be working and adding content - -```shell -mkdir ~/development -cd ~/development - --or- - -mkdir ~/workspace -cd ~/workspace -``` - -## Git Basics - -### Git Workflow - -- Untracked files - - New files that Git has not been told to track previously. -- Working area (Workspace) - - Files that have been modified but are not committed. -- Staging area (Index) - - Modified files that have been marked to go in the next commit. -- Upstream - - Hosted repository on a shared server - -### GitLab - -- GitLab is an application to code, test and deploy. -- Provides repository management with access controls, code reviews, - issue tracking, Merge Requests, and other features. -- The hosted version of GitLab is <https://gitlab.com> - -### New Project - -- Sign in into your <https://gitlab.com> account -- Create a project -- Choose to import from 'Any Repo by URL' and use <https://gitlab.com/gitlab-org/training-examples.git> -- On your machine clone the `training-examples` project - -### Git and GitLab basics - -1. Edit `edit_this_file.rb` in `training-examples` -1. See it listed as a changed file (working area) -1. View the differences -1. Stage the file -1. Commit -1. Push the commit to the remote -1. View the Git log - -```shell -# Edit `edit_this_file.rb` -git status -git diff -git add <file> -git commit -m 'My change' -git push origin master -git log -``` - -### Feature Branching - -1. Create a new feature branch called `squash_some_bugs` -1. Edit `bugs.rb` and remove all the bugs. -1. Commit -1. Push - -```shell -git checkout -b squash_some_bugs -# Edit `bugs.rb` -git status -git add bugs.rb -git commit -m 'Fix some buggy code' -git push origin squash_some_bugs -``` - -## Merge Request - -- When you want feedback create a merge request -- Target is the ‘default’ branch (usually master) -- Assign or mention the person you would like to review -- Add `Draft:` to the title if it's a work in progress -- When accepting, always delete the branch -- Anyone can comment, not just the assignee -- Push corrections to the same branch - -### Merge request example - -- Create your first merge request - - Use the blue button in the activity feed - - View the diff (changes) and leave a comment - - Push a new commit to the same branch - - Review the changes again and notice the update - -### Feedback and Collaboration - -- Merge requests are a time for feedback and collaboration -- Giving feedback is hard -- Be as kind as possible -- Receiving feedback is hard -- Be as receptive as possible -- Feedback is about the best code, not the person. You are not your code -- Feedback and Collaboration - ---- - -- Review the Thoughtbot code-review guide for suggestions to follow when reviewing merge requests: - [Thoughtbot](https://github.com/thoughtbot/guides/tree/master/code-review) -- See GitLab merge requests for examples: [Merge Requests](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests) - -## Merge Conflicts - -- Happen often -- Learning to fix conflicts is hard -- Practice makes perfect -- Force push after fixing conflicts. Be careful! - -### Example Plan - -1. Checkout a new branch and edit conflicts.rb. Add 'Line4' and 'Line5'. -1. Commit and push -1. Checkout master and edit conflicts.rb. Add 'Line6' and 'Line7' below 'Line3'. -1. Commit and push to master -1. Create a merge request and watch it fail -1. Rebase our new branch with master -1. Fix conflicts on the conflicts.rb file. -1. Stage the file and continue rebasing -1. Force push the changes -1. Finally continue with the Merge Request - -### Example 1/2 - -```shell -git checkout -b conflicts_branch - -# vi conflicts.rb -# Add 'Line4' and 'Line5' - -git commit -am "add line4 and line5" -git push origin conflicts_branch - -git checkout master - -# vi conflicts.rb -# Add 'Line6' and 'Line7' -git commit -am "add line6 and line7" -git push origin master -``` - -### Example 2/2 - -Create a merge request on the GitLab web UI. You'll see a conflict warning. - -```shell -git checkout conflicts_branch -git fetch -git rebase master - -# Fix conflicts by editing the files. - -git add conflicts.rb -# No need to commit this file - -git rebase --continue - -# Remember that we have rewritten our commit history so we -# need to force push so that our remote branch is restructured -git push origin conflicts_branch -f -``` - -### Notes - -- When to use `git merge` and when to use `git rebase` -- Rebase when updating your branch with master -- Merge when bringing changes from feature to master -- Reference: <https://www.atlassian.com/git/tutorials/merging-vs-rebasing> - -## Revert and Unstage - -### Unstage - -To remove files from stage use reset HEAD. Where HEAD is the last commit of the current branch: - -```shell -git reset HEAD <file> -``` - -This will unstage the file but maintain the modifications. To revert the file back to the state it was in before the changes we can use: - -```shell -git checkout -- <file> -``` - -To remove a file from disk and repo use `git rm` and to remove a directory use the `-r` flag: - -```shell -git rm '*.txt' -git rm -r <dirname> -``` - -If we want to remove a file from the repository but keep it on disk, say we forgot to add it to our `.gitignore` file then use `--cache`: - -```shell -git rm <filename> --cache -``` - -### Undo Commits - -Undo last commit putting everything back into the staging area: - -```shell -git reset --soft HEAD^ -``` - -Add files and change message with: - -```shell -git commit --amend -m "New Message" -``` - -Undo last and remove changes - -```shell -git reset --hard HEAD^ -``` - -Same as last one but for two commits back: - -```shell -git reset --hard HEAD^^ -``` - -Don't reset after pushing - -### Reset Workflow - -1. Edit file again 'edit_this_file.rb' -1. Check status -1. Add and commit with wrong message -1. Check log -1. Amend commit -1. Check log -1. Soft reset -1. Check log -1. Pull for updates -1. Push changes - -```shell -# Change file edit_this_file.rb -git status -git commit -am "kjkfjkg" -git log -git commit --amend -m "New comment added" -git log -git reset --soft HEAD^ -git log -git pull origin master -git push origin master -``` - -### `git revert` vs `git reset` - -Reset removes the commit while revert removes the changes but leaves the commit -Revert is safer considering we can revert a revert - -```shell -# Changed file -git commit -am "bug introduced" -git revert HEAD -# New commit created reverting changes -# Now we want to re apply the reverted commit -git log # take hash from the revert commit -git revert <rev commit hash> -# reverted commit is back (new commit created again) -``` - -## Questions - -## Instructor Notes - -### Version Control - -- Local VCS was used with a filesystem or a simple db. -- Centralized VCS such as Subversion includes collaboration but - still is prone to data loss as the main server is the single point of - failure. -- Distributed VCS enables the team to have a complete copy of the project - and work with little dependency to the main server. In case of a main - server failing the project can be recovered by any of the latest copies - from the team +Visit our [documentation page](https://docs.gitlab.com) for information about GitLab. diff --git a/doc/university/training/topics/explore_gitlab.md b/doc/university/training/topics/explore_gitlab.md index 4ca931d0e26..8678f8fd9eb 100644 --- a/doc/university/training/topics/explore_gitlab.md +++ b/doc/university/training/topics/explore_gitlab.md @@ -1,12 +1,5 @@ --- -comments: false +redirect_to: '../../../gitlab-basics/README.md' --- -# Explore GitLab projects - -- Dashboard -- User Preferences -- Issues -- Milestones and Labels -- Manage project members -- Project settings +This document was moved to [another location](../../../gitlab-basics/README.md). |