🧠 What I Learned About Version Control
I dove into the world of version control and learned how developers use Git and GitHub to manage and collaborate on code projects. Here’s a breakdown of the core concepts I grasped and practiced.
🔁 1. Forking
Forking lets you create your own copy of someone else’s repository under your GitHub account. It’s useful when contributing to open-source projects.
👯 2. Collaboration
Git and GitHub make it easy for teams to work together:
- Use branches to separate features
- Use pull requests to share changes
- Communicate through issues and reviews
📬 3. Pull Requests (PRs)
A pull request proposes changes from your fork or branch to the main project.
# After committing your work
git push origin my-branch
Then go to GitHub → Click “Compare & Pull Request” → Submit
⚔️ 4. Merge Conflicts
When two people change the same line of code, Git can’t decide whose changes to keep. This causes a merge conflict.
To resolve:
- Git shows conflict markers
- You manually fix the code
- Then commit the resolved version
🔍 5. Code Review
After opening a PR, other contributors can review your changes:
- Leave comments
- Suggest improvements
- Approve for merging
Code reviews improve quality and teamwork.
🐞 6. GitHub Issues
Issues are used to track:
- Bugs 🐛
- New features 🌟
- Tasks ✅
Example: “Add search functionality”
PRs can reference issues using:
Fixes #5
💻 7. Git Commands I Practiced
git clone <repo-url> # Copy repo to local machine
git checkout -b new-branch # Create and switch to a new branch
git add . # Stage changes
git commit -m "Your message" # Save snapshot of changes
git push origin new-branch # Push changes to GitHub
git pull origin main # Sync with the main branch
⬆️ 8. Pushing Changes to GitHub
Once I committed my changes:
git push origin feature-branch
Then I opened a pull request and waited for feedback!
🔧 Centralized vs Distributed Version Control Systems
While learning about Git, I also explored the two main types of version control systems (VCS):
🏢 Centralized Version Control Systems (CVCS)
In a centralized system, there is one central server where all versions of a project are stored. Everyone connects to this server to get or submit changes.
Examples:
- Subversion (SVN)
- Perforce
- CVS
Pros:
- Simpler to understand
- Easier to control access
Cons:
- Single point of failure
- Requires constant internet connection
🌍 Distributed Version Control Systems (DVCS)
In distributed systems like Git, every developer has a full copy of the project history. Changes can be made locally and pushed later.
Examples:
- Git
- Mercurial
- Bazaar
Pros:
- Work offline
- Better collaboration
- Faster operations
Cons:
- Slightly more complex to learn initially
Git is a distributed version control system and that's what makes it so powerful for collaboration!
Learning Git and GitHub gave me superpowers 🦸♀️ to work with other developers, track my code history, and contribute to real-world projects with confidence.
“The best way to learn Git is to use Git.”
#git #github #versioncontrol #opensource #womenintech #productivity