I feel like the only thing you hear from professors, internet connoisseurs, and colleagues in the software engineering world is “learn git”. And then, whilst going about our own projects, we hastily learn how to add, commit, push, pull, and even resolve merge conflicts. While this is all fine and dandy, I wanted to give a friendly reminder of why not to ever lose these skills when building software.

Know Your Branches
The biggest thing you will run into during your career as a software engineer is a merge conflict. Let me paint an all too familiar picture of merge conflicts…
You’ve just been assigned to help out a project that has been going on for the past 2 months. The codebase is already 70% complete, but there is still work to be done. You have two other colleagues also working on the project: one is heavily involved, and the other jumps in and out of the project due to other commitments. You do really good work on this project, make a pull request almost daily, multiple commits in one day, and just making really steady progress. Your coworker who also works on the project is making some pull requests, and you two have to resolve conflicts about once a week. Then, in walks the third coworker, who fixed an excel sheet visual basic program, and needs to merge it into master. So they pull in the changes into their local repo, but when they try to resolve the conflicts, accidentally keep all of the old files. They then make a pull request to master, which gets approved by accident. Your other coworker pulls those changes in and then resolves all of their conflicts. Then, about an hour later, everyone realizes they have the wrong files!
This situation is perfect for git. All you have to do is revert back to a couple of commits previous and viola! you have your old files back!
.gitignore
There are going to be a lot of times where you don’t want to push some files to your remote repository. Maybe it is a bunch of local configuration files or build assemblies. Maybe it’s some old files that you don’t want to push while someone else is working on them elsewhere. Whatever the case is, if you don’t want it, .gitignore it! Seriously, it is a lifesaver and will save a lot of future headaches.
Conclusion
Use git. Period.