Prerequisites:
- No technical prerequisites
Audience
- Project Managers, using git to version control documents
- Artists to version control their work
- Developers, Operations, maintaining versions of code or configuration files.
Git is a 3rd generation version control system developed by Linus Torvalds, with the first release in 2005. Git has a distributed system in mind, which should allow users to have their local repositories to which they commit and on which they work. Users are responsible for synchronizing their copies with a remote repository that the rest of the Team works with. Previous Version Control Systems, such as SVN (2nd generation) were centralized, and required the users to merge their changes on each commit with a central repository..
This instructor-led, live training (online or onsite) is aimed at beginner-level users, as an introduction to git from user perspective and common collaboration and branching strategies
By the end of this training, participants will be able to:
- What is the difference between 2nd generation version control (e.g. SVN) and 3rd generation (e.g. GIT)?
- How to use git for version control
- How to handle changes
- Hhat is staging/committing
- How to setup your branches
- Working with Remote and Local Repositories
- How to resolve merge conflicts
- How to add tags
- How to collaborate with a team, and make code reviews for planned changes
- Project planning strategies
- Best practices to work together on features
Format of the Course
- Interactive lecture and discussion.
- Lots of exercises and practice.
- Hands-on implementation in a live-lab environment.
Course Customization Options
- To request a customized training for this course, please contact us to arrange.
What is GIT?
Comparison of GIT to 1st and 2nd Generation (SVN)
- 1st generation
- 2nd generation
- 3rd generation
Basics - Git and Team
Initializing a project locally
Working versions and branches
- git init
- git add (staging Files)
- git reset (Unstaging Files)
- git commit
- git logs
- 2nd commit and git diff
- Stages overview
- Branches
- Setting a Remote Repository
Workflow basic - feature branches and merges
- Outline of branches
- Initial project setup
- Add develop branch and push to remote
- Create feature branch JIRA-1 and push to remote
- Create merge request and merge changes to develop
Workflow advanced 1 - parallel feature branches and rebase strategy
- Simultaneous changes in multiple feature branches
- git merge
- git tag
- git clone (Copying a remote repository)
Workflow advanced 2 - Hotfix and releases
Workflow advanced 3 - Parallel development of 1 feature
- Setting up CI/CD (continuos integration and development)
- Setting up Runners for a Project
- Setting up pipelines and jobs with gitlab-ci
File Management
- Ignore files with .gitignore
- Ignore future changes with: git update-index --skip-worktree
- Change saved execution mode with: git update-index --chmod=+x
- Keep empty folders with gitkeep
Git Submodules
Big Files
- Download and install LFS
- Migrating already existing big files to LFS
- Settting on servers - Github
- Setting on servers - Gitlab
Useful Links
List of commands