- 1. Git
- 2. Survey questions
- 2.1. How do you work now? Describe your current workflow!
- 2.2. How often do you commit? How often do you push/pull?
- 2.3. How often do you have 'conflicts'?
- 2.4. How do you make sure new code works fine?
- 2.5. How do you ensure you did not break anything?
- 2.6. What are the git commands in use?
- 2.7. Git commands
- 3. VCS
- 3.1. Communication
- 3.2. Why use a version control?
- 3.3. Version control Systems (VCS)
- 3.4. Local Version Control Systems (LVCS)
- 3.5. Centralized Version Control Systems (CVCS)
- 3.6. Distributed Version Control Systems (DVCS)
- 3.7. Why Git?
- 3.8. Git services
- 3.9. Locking or not
- 4. Git intro
- 4.1. Git Overview
- 4.2. Git Installation
- 4.3. Command line
- 4.4. Why Command line?
- 4.5. GUI
- 4.6. Which version do you have?
- 4.7. Configure Git
- 4.8. Configure Git - personalize
- 4.9. Configure and Privacy
- 4.10. More configuration - alias
- 4.11. Getting help
- 4.12. Git Tutorial
- 4.13. Exercises
- 5. Git Basics
- 5.1. 4 Ways to get started
- 5.2. Creating a local empty repository
- 5.3. Create first file
- 5.4. Add first file
- 5.5. Commit first file
- 5.6. File status
- 5.7. Making some changes
- 5.8. Untracked and Modified
- 5.9. Untracked/Modified/Staged
- 5.10. Commit the file(s)
- 5.11. See the changes
- 5.12. Stage and HEAD
- 5.13. Remove from stage (unstage)
- 5.14. Drop local changes (restore to HEAD or to index)
- 5.15. Add all the files
- 5.16. Git ignore
- 5.17. .git/info/exclude
- 5.18. .gitkeep
- 5.19. add and commit in one step
- 5.20. Move a file
- 5.21. Remove a file
- 5.22. Frequency of commits
- 5.23. git log
- 5.24. gitk
- 5.25. blame
- 5.26. short status
- 5.27. Exercise 2
- 6. Git branching, merging, and rebase
- 6.1. Why use branches?
- 6.2. Create a branch
- 6.3. Create a branch and switch to it
- 6.4. Switch between branches
- 6.5. Exercises Session 4
- 6.6. Simple automatic merge
- 6.7. Merge with conflict
- 6.8. Merge conflict in Python
- 6.9. Merge conflict in Rust
- 6.10. Repeated merge
- 6.11. Delete branch
- 6.12. Force delete branch
- 6.13. Exercise 5
- 6.14. Exercises Session 6
- 6.15. rebase
- 6.16. Exercises Session 7
- 6.17. Various ways to list changes
- 6.18. log between commits
- 6.19. log show filenames
- 6.20. Show history of renamed file
- 6.21. Commits that were not merged yet
- 6.22. Git tag
- 6.23. Remove tags
- 6.24. Exercise
- 6.25. Exercises Session 3
- 7. Git Local
- 7.1. Create server repository
- 7.2. Configure user
- 7.3. Add file
- 7.4. Update file
- 7.5. First 3 commits
- 7.6. Create branch
- 7.7. Switch to branch
- 7.8. Make changes on the branch
- 7.9. Switch to main
- 7.10. Add changes to main
- 7.11. Switch to branch
- 7.12. Another change on the branch
- 7.13. Merge branch to main
- 7.14. Shared feature branch
- 8. Git Remote
- 8.1. Network protocols
- 8.2. Setup remote repository
- 8.3. Clone a repository
- 8.4. List remote repositories
- 8.5. push
- 8.6. fetch
- 8.7. pull
- 8.8. incoming, outgoing
- 8.9. Remote branch
- 8.10. Remote branch created by others
- 8.11. Delete remote branch
- 8.12. Remove remote tags
- 8.13. Exercise
- 9. Git Workspace
- 9.1. tags
- 9.2. Stash
- 9.3. Stash untracked files as well
- 9.4. Stash selected files
- 9.5. How to stash only part of the files
- 9.6. Clear stash
- 9.7. Exercises Session 8
- 9.8. Undo last commit
- 9.9. Undo git reset
- 9.10. git bisect - finding bugs
- 9.11. Exercises Session 9
- 9.12. git rebase
- 10. Git Workflows
- 10.1. A collection of workflows and issues
- 10.2. Workflow for individuals
- 10.3. Git workflows
- 10.4. Simple Centralized workflow
- 10.5. Centralized Workflow
- 10.6. Repo start
- 10.7. Developer A
- 10.8. Developer B
- 10.9. git pull (fetch+merge)
- 10.10. Forgetting to rebase
- 10.11. git pull --rebase (fetch+rebase)
- 10.12. Resolve conflicts
- 10.13. Conflicting patch
- 10.14. Conflicting file
- 10.15. Resolve conflicting file
- 10.16. Continue rebase
- 11. Git Flow
- 11.1. About Git Flow
- 11.2. Git Flow branches
- 11.3. Git flow chart
- 11.4. Try Git Flow
- 11.5. Merge to develop
- 11.6. Delete remote branch
- 11.7. Gitflow with Fast Forward merges
- 12. Github
- 12.1. Github Open Source
- 12.2. Fork repository
- 12.3. Forking workflow
- 12.4. Clone a repository from Github
- 12.5. Github fork
- 12.6. git remote add
- 12.7. Public key
- 12.8. Exercise
- 12.9. Make some local changes
- 12.10. push out local changes to branch
- 12.11. Send Pull-Request
- 12.12. Make more changes and update the pull-request
- 12.13. Follow the changes in the original repository
- 12.14. Remove local branch
- 12.15. Remove remote branch
- 13. Git Internals
- 13.1. Plumbing and Porcelain
- 13.2. The .git directory
- 13.3. Git Objects (Files)
- 13.4. See Objects
- 13.5. tags
- 14. Appendix
- 14.1. Setup remote repository
- 14.2. Revert local changes
- 14.3. Undelete a file
- 14.4. Edit config files
- 14.5. Common Git commands
- 14.6. Tools
- 14.7. External difftools
- 14.8. External difftool WinMerge
- 14.9. Resources
- 14.10. Conflicts
- 15. Hooks
- 15.1. pre-commit hook
- 15.2. commit-msg hook
- 16. Other tools
- 16.1. tig
- 16.2. cgit
- 16.3. gitore
- 17. Extra
- 17.1. Stage hunk-by-hunk
- 17.2. Push to remote branch
- 17.3. Detached HEAD
- 17.4. Change last commit message
- 17.5. Remove file added accidentally in last commit
- 17.6. How to see the content of the staged version of a file?
- 17.7. How to see an older version of a file?
- 17.8. Setup git subtree
- 17.9. git subtree change parent
- 17.10. git subtree change in subtree
- 17.11. Set the author
- 17.12. Find removed code
- 17.13. Move main branch to an earlier commit
- 17.14. Rename branch
- 17.15. Local config file
- 17.16. LFS - Git Large File Storage
- 17.17. Show the diff in the commit-message-editor