ANSCI 4040/6040 - Fall 2026
By the end of today, you should be able to explain:
Why version control exists, what a Git workflow is doing, and what parts of a data-science project should be versioned.
We will learn this by experiencing the problem first.
Your mission: reproduce the published result.
RMSE = 0.18 kg CH₄/cow/day
You have a folder:
What went wrong?
This is the problem version control is designed to solve.
Can you build the most probable project history:
A commit is a recorded checkpoint.
A useful mental model:
Git remembers how the project got here.
Student 1 and student 2 need to try different ideas.
Question for you:
Why not just overwrite the same files?
A branch lets us experiment without destroying the main line of work.
Two people have different histories.
Pull → bring remote changes into your local project.
Merge → combine histories.
And sometimes:
Merge conflict.
That is not a Git failure. It is Git asking a human to make the scientific decision.
What about these files?
What about these files?
What about these files?
YES
code
configuration
documentation
small text-based metadata
NO
large raw data
temporary files
secrets
generated outputs
local machine files
This leads to .gitignore.
Tell Git what not to track.
Typical python .gitignore:
A result depends on more than code.
Reproducibility means thinking about the whole chain.
Git is one piece of that system — not the entire system.
Why would a solo scientist use version control?
Then ask:
What would you want to undo, compare, or understand six months from now?
The answer is often:
“I want to know what I did — and be able to go back.”
Version control is not mainly about commands.
It is about history, reproducibility, and safe change.