For many of us, Version control, and especially git, seems like a mystery that's very hard to solve. Questions like what is version control, what is git, what does GitHub do, and what is the difference between git and GitHub keep popping up in our heads.
In this article, I will try to answer some of these questions and as a bonus, I will add some git commands that will help you git like a pro. So let's get started.
Version control, also known as source control, is the practice of tracking and managing changes to a software code.
Version control keeps track of every modification to the code in a special kind of database. If a mistake is made, developers can turn back to check and compare it with an earlier version of the code to fix the mistakes. It's like time traveling, the only one that's possible today.
Version control helps in :
Git is a free and open-source and distributed version control system, originally authored by Linus Torvalds in 2005 and since then, Junio Hamano has been the core maintainer of the project.
The short and straight answer is NO. The big answer -
Git is a version control system that lets you manage and keep track of your source code history.
GitHub is a cloud-based hosting service that lets you manage a Git repository.
Now that we have answered some of the burning questions, as I promised earlier Let's list out some important git commands.
Tell git who you are - Configure the author name and email address to be used with your commits.
git config --global user.name "Nandan Kumar"
git config --global user.email [email protected]
You can also set the user name and email for a specific repository, Run the below commands Just inside the repository
git config user.name "Nandan Kumar"
git config user.email [email protected]
This command is used to start a new repository. Run the below command to initialize a git repo in the current folder you are in.
git init
Or you can specify the path to the folder you want to initialize the git repo
git init /home/nandan/path/to/repo
Check out / Clone a repository by passing the path to the repository
git clone /home/nandan/path/to/repo
You can also provide a URL for a remote server
git clone [URL]
git clone username@host:/path/to/repository
Add one or more files to the staging
git add <filename> // to add a specific file
git add * // to add all files
Commit changes to the head (but not yet to the remote repository), Make your commit message as meaningful and descriptive as possible. This message will show up in your change history.
git commit -m "your unique commit message"
In order to commit any files, you’ve added the git add command and any files you’ve changed since then.
git commit -a
This command lists the files you've changed and those you still need to add or commit.
git status
Once you commit the changes, the Next thing to do is to push those changes to your remote repository
git push origin master // to push your changes to the master branch
git push origin main // to push your changes to the main branch
git push // to push changes to the branch you currently are in
If you haven't connected your local repository to a remote server, you will not be able to make a code push to your remote repository, add the server to be able to push to it.
git remote add origin <server>
In this blog post, We have learned to initialize, clone, make changes, make a commit and finally push our changes to a git repository.
This is a good start, but in order to become a git master, You will have to start practicing these git commands in your day-to-day life.
But that's not all. I will have the task of developing the next posts in this series, which will have more git commands like branching, updating your repository, tagging, and undoing your changes.
Stay tuned, follow me on social media channels, and subscribe to my newsletter to get updates on my upcoming posts.
Also published here.
Feel free to comment on my blog post or shoot me an email at [email protected] If you have any queries and I will try to answer.