Author: Will Huang (Will 保哥)
In the field of software development, version control of source code is a very important matter. Unlike centralized version control systems such as Subversion or TFVC (Team Foundation Version Control), Git is a distributed version control system (DVCS; Distributed Version Control System) that brings many advantages to version control and solves the shortcomings of traditional centralized version control, such as support for local operations, easy backup, powerful and flexible branching and merging, and more. However, because Git version control differs greatly from traditional centralized version control tools in both version control concepts and tool usage, it creates a significant learning curve. Over the next 30 days, I hope to help you gain a complete understanding of the essence of Git version control and share my learning experience, along with the problems and solutions we encountered during our company's transition from Subversion to Git.
Translation Note: This English version maintains the core concepts and technical accuracy of the original Traditional Chinese edition while adapting some content for modern Git practices and international audiences. Some chapters have been enhanced with additional examples and current best practices.
- Day 01: Understanding Git Version Control
- Day 02: Three Essential Git Tools for Windows Platform
- Day 03: Creating a Repository
- Day 04: Common Git Version Control Commands
- Day 05: Understanding the Relationship Between Repository, Working Directory, Objects, and Index
- Day 06: Parsing Git Data Structure - Object Structure
- Day 07: Parsing Git Data Structure - Index Structure
- Day 08: Basic Concepts and Usage of Branches
- Day 09: Comparing File and Version Differences
- Day 10: Understanding Git Object Absolute Names
- Day 11: Understanding Git Object References and Symbolic References
- Day 12: Understanding Git Object Relative Names
- Day 13: Stashing Changes in Working Directory and Index
- Day 14: Git for Windows Configuration Options
- Day 15: Tags - Marking Important Events in Version Control
- Day 16: Using git reflog to Track Change History
- Day 17: Basic Concepts and Usage of Merging
- Day 18: Fixing Committed Version History Part 1 (reset & amend)
- Day 19: Setting .gitignore Ignore List
- Day 20: Fixing Committed Version History Part 2 (revert)
- Day 21: Fixing Committed Version History Part 3 (cherry-pick)
- Day 22: Fixing Committed Version History Part 4 (rebase)
- Day 23: Fixing Committed Version History Part 5 (rebase 2)
- Day 24: Using GitHub Remote Repository - Getting Started
- Day 25: Using GitHub Remote Repository - Concepts
- Day 26: Multiple People Working in the Same Remote Repository
- Day 27: Version Control Through Branches in the Same Remote Repository
- Day 28: Understanding GitHub Forks and Pull Request Workflow
- Day 29: How to Import Subversion Projects into Git Repository
- Day 30: Sharing Some Useful Git Operation Tips from Work
- 2013 6th iT Ironman Contest Winner List Announcement!
- 【iT Ironman Contest Annual Award】
- 【Development Technology Group Annual Ironman】
- Blog: The Will Will Web
- Facebook Page: Will 保哥的技術交流中心
- Twitter: Will 保哥 (@Will_Huang)
- Plurk: ★★★ Will 保哥的噗浪 ★★★
- Threads: Will 保哥
