1. Git
  2. Survey questions
    1. How do you work now? Describe your current workflow!
    2. How often do you commit? How often do you push/pull?
    3. How often do you have 'conflicts'?
    4. How do you make sure new code works fine?
    5. How do you ensure you did not break anything?
    6. What are the git commands in use?
    7. Git commands
  3. VCS
    1. Communication
    2. Why use a version control?
    3. Version control Systems (VCS)
    4. Local Version Control Systems (LVCS)
    5. Centralized Version Control Systems (CVCS)
    6. Distributed Version Control Systems (DVCS)
    7. Why Git?
    8. Git services
    9. Locking or not
  4. Git intro
    1. Git Overview
    2. Git Installation
    3. Command line
    4. Why Command line?
    5. GUI
    6. Which version do you have?
    7. Configure Git
    8. Configure Git - personalize
    9. Configure and Privacy
    10. More configuration - alias
    11. Getting help
    12. Git Tutorial
    13. Exercises
  5. Git Basics
    1. 4 Ways to get started
    2. Creating a local empty repository
    3. Create first file
    4. Add first file
    5. Commit first file
    6. File status
    7. Making some changes
    8. Untracked and Modified
    9. Untracked/Modified/Staged
    10. Commit the file(s)
    11. See the changes
    12. Stage and HEAD
    13. Remove from stage (unstage)
    14. Drop local changes (restore to HEAD or to index)
    15. Add all the files
    16. Git ignore
    17. .git/info/exclude
    18. .gitkeep
    19. add and commit in one step
    20. Move a file
    21. Remove a file
    22. Frequency of commits
    23. git log
    24. gitk
    25. blame
    26. short status
    27. Exercise 2
  6. Git branching, merging, and rebase
    1. Why use branches?
    2. Create a branch
    3. Create a branch and switch to it
    4. Switch between branches
    5. Exercises Session 4
    6. Simple automatic merge
    7. Merge with conflict
    8. Merge conflict in Python
    9. Merge conflict in Rust
    10. Repeated merge
    11. Delete branch
    12. Force delete branch
    13. Exercise 5
    14. Exercises Session 6
    15. rebase
    16. Exercises Session 7
    17. Various ways to list changes
    18. log between commits
    19. log show filenames
    20. Show history of renamed file
    21. Commits that were not merged yet
    22. Git tag
    23. Remove tags
    24. Exercise
    25. Exercises Session 3
  7. Git Local
    1. Create server repository
    2. Configure user
    3. Add file
    4. Update file
    5. First 3 commits
    6. Create branch
    7. Switch to branch
    8. Make changes on the branch
    9. Switch to main
    10. Add changes to main
    11. Switch to branch
    12. Another change on the branch
    13. Merge branch to main
    14. Shared feature branch
  8. Git Remote
    1. Network protocols
    2. Setup remote repository
    3. Clone a repository
    4. List remote repositories
    5. push
    6. fetch
    7. pull
    8. incoming, outgoing
    9. Remote branch
    10. Remote branch created by others
    11. Delete remote branch
    12. Remove remote tags
    13. Exercise
  9. Git Workspace
    1. tags
    2. Stash
    3. Stash untracked files as well
    4. Stash selected files
    5. How to stash only part of the files
    6. Clear stash
    7. Exercises Session 8
    8. Undo last commit
    9. Undo git reset
    10. git bisect - finding bugs
    11. Exercises Session 9
    12. git rebase
  10. Git Workflows
    1. A collection of workflows and issues
    2. Workflow for individuals
    3. Git workflows
    4. Simple Centralized workflow
    5. Centralized Workflow
    6. Repo start
    7. Developer A
    8. Developer B
    9. git pull (fetch+merge)
    10. Forgetting to rebase
    11. git pull --rebase (fetch+rebase)
    12. Resolve conflicts
    13. Conflicting patch
    14. Conflicting file
    15. Resolve conflicting file
    16. Continue rebase
  11. Git Flow
    1. About Git Flow
    2. Git Flow branches
    3. Git flow chart
    4. Try Git Flow
    5. Merge to develop
    6. Delete remote branch
    7. Gitflow with Fast Forward merges
  12. Github
    1. Github Open Source
    2. Fork repository
    3. Forking workflow
    4. Clone a repository from Github
    5. Github fork
    6. git remote add
    7. Public key
    8. Exercise
    9. Make some local changes
    10. push out local changes to branch
    11. Send Pull-Request
    12. Make more changes and update the pull-request
    13. Follow the changes in the original repository
    14. Remove local branch
    15. Remove remote branch
  13. Git Internals
    1. Plumbing and Porcelain
    2. The .git directory
    3. Git Objects (Files)
    4. See Objects
    5. tags
  14. Appendix
    1. Setup remote repository
    2. Revert local changes
    3. Undelete a file
    4. Edit config files
    5. Common Git commands
    6. Tools
    7. External difftools
    8. External difftool WinMerge
    9. Resources
    10. Conflicts
  15. Hooks
    1. pre-commit hook
    2. commit-msg hook
  16. Other tools
    1. tig
    2. cgit
    3. gitore
  17. Extra
    1. Stage hunk-by-hunk
    2. Push to remote branch
    3. Detached HEAD
    4. Change last commit message
    5. Remove file added accidentally in last commit
    6. How to see the content of the staged version of a file?
    7. How to see an older version of a file?
    8. Setup git subtree
    9. git subtree change parent
    10. git subtree change in subtree
    11. Set the author
    12. Find removed code
    13. Move main branch to an earlier commit
    14. Rename branch
    15. Local config file
    16. LFS - Git Large File Storage
    17. Show the diff in the commit-message-editor