DEV Community

Cover image for What is version control?

What is version control?

Marcin Wosinek on January 11, 2024

Version control is a basic but integral tool in software development. Many people don’t prioritize it while learning to program and, often, develop...
Collapse
 
ooosys profile image
oOosys • Edited

I have tried to get clear understanding of the what and why reading various explanations about version control, but in my eyes all I have checked out yet, including yours, failed to provide a nice designed example demonstrating the necessity of version control, the problems it is facing and the mechanisms behind it. Let's take a closer look at the first sentence of the article: "Version control is a basic but integral tool in software development.". I does not explain what version control is at all ... it's just a bunch of words put together to express an opinion. The next sentences following are not much better ...
Well designed explanation requires very deep understanding of the software, far beyond being able to use it including ideas what are the possible reasons making it hard to understand for a novice.

Collapse
 
marcinwosinek profile image
Marcin Wosinek How to dev

Thanks for the feedback!

Do you mean that as a beginner, you are still not sure what version control provides you, and if it makes sense to use it in projects?

Collapse
 
ooosys profile image
oOosys

My trouble is to get understanding how to manage synchronization between a github repository and offline files of cloned one after change. It makes simple things complicated ... for the sake of "remembering" all the past I don't need and don't want. So the question is, how to make changing file content of files in a github repo by changing file content offline on a local clone easy? Now it needs more than one step and I am still not fully sure which steps it needs ... What I would like to achieve is to say: "sync the clone and the repo" and stop bothering me by forcing me to put additional work into it only for the version control own needs and purposes.

Thread Thread
 
marcinwosinek profile image
Marcin Wosinek How to dev

Thank you, that's an excellent question or questions!

One would be why you need to git add <somethign>, before you commit, and the other why you need to pull the remote to know what is there right now.

Thread Thread
 
marcinwosinek profile image
Marcin Wosinek How to dev

I wrote about confusing complexity in Git before:

how-to.dev/why-git-is-so-complicated

It can provide some context for things that bother you in Git.

Thread Thread
 
ooosys profile image
oOosys • Edited

Citation from the linked article:
Git will make your life miserable if you try to use it without understanding it well.
OK ... what is says in other words is:
In order to avoid miserable life the easy way ... don't use Git ...
It's something for guys like Linus Torvalds who are "living inside the command line".