The reproducibility of research is not only affected by how you use your tools, but also which tools you decide to use. In general, there is no set amount of right tools to use; each has their own purpose. When you're dealing with computer files, however, you should make use of a version control system.
What is a Version Control System?
Version Control Systems (VCS), also known as Source Code Management (SCM) or Revision Control Systems (RCS), are systems that keep track and handle changes to some set of computer files stored in a specified location known as a repository. Every time a change is made and pushed to the repository's VCS, it is given some unique identifier such that it can be referred to and logged with the time it was made, or committed, and the author who made the commit.
VCSes contain a lot more functionality than just tracking changes. For example, changes can branch off any commit within the repository and then merged back into the main branch. A branched commit also doesn't have to have a starting point on the main branch, which could be useful if you were hosting documentation in the same repository as your source code. As each person can create their own branch and then merge back into the main one, you can have contributors work concurrently on different tasks. There are even tools to resolve conflicts between branches if the commit history cannot be easily merged together.
All in all, VCSes are useful for keeping track of how who did what when and why. So, in the next blog post, let's take a look at one such VCS and how we can use it.
Some Additional Thoughts
Everything Version Control
In general, I believe every computer file should have some sort of VCS attached to it. Keeping track of changes and managing contributions is ridiculously useful for any computer file as you can always figure out what you did and if you need to revert it.
Cool VCS Implementations
There are a number of VCS implementations out there. For example, preregistrations are typically stored using a minimal form of VCS. Google files are also another thing. Even artifact repositories for libraries typically have some VCS logic associated with it. Basically, the concept of VCS is used pretty much anywhere.