<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Javi Palacios</title>
    <description>The latest articles on DEV Community by Javi Palacios (@fj_palacios).</description>
    <link>https://dev.to/fj_palacios</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3958394%2F53300b47-6c71-4239-a646-2a8cc4b00d1e.jpeg</url>
      <title>DEV Community: Javi Palacios</title>
      <link>https://dev.to/fj_palacios</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/fj_palacios"/>
    <language>en</language>
    <item>
      <title>Getting started with Git</title>
      <dc:creator>Javi Palacios</dc:creator>
      <pubDate>Mon, 01 Jun 2026 08:00:59 +0000</pubDate>
      <link>https://dev.to/fj_palacios/getting-started-with-git-52l2</link>
      <guid>https://dev.to/fj_palacios/getting-started-with-git-52l2</guid>
      <description>&lt;p&gt;We already know &lt;a href="https://fjp.es/en/tutorials/what-is-git/" rel="noopener noreferrer"&gt;What is Git&lt;/a&gt; and we learned &lt;a href="https://fjp.es/en/tutorials/how-to-install-git-on-linux-macos-and-windows/" rel="noopener noreferrer"&gt;How to Install Git on our Operating System&lt;/a&gt;. Now is about time that we learn how to do our first &lt;em&gt;commit&lt;/em&gt; with this amazing Version Control Software. :)&lt;/p&gt;

&lt;p&gt;From now on, all the commands are valid for UNIX environments, if you are following this course from Windows, then you have three options: Ignore all the commands in this article, except Git commands and doing all other operations graphically; &lt;em&gt;Convert&lt;/em&gt; manually the commands we use to the correct ones for Windows &lt;code&gt;cmd.exe&lt;/code&gt; or PowerShell, or the very last option but the most recommended: &lt;a href="http://www.cygwin.com/" rel="noopener noreferrer"&gt;Install Cygwin&lt;/a&gt;, it's a UNIX Terminal Emulator and thanks to Cygwin, you can use UNIX commands like if you were using a Linux Terminal without having to worry about wrong commands or special syntax.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;mkdir &lt;/span&gt;git-tutorial
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;git-tutorial
&lt;span class="nv"&gt;$ &lt;/span&gt;git init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With &lt;code&gt;mkdir&lt;/code&gt; we are creating a new folder for our project (in this case for this course), with &lt;code&gt;cd&lt;/code&gt; we get into the project's folder and with &lt;code&gt;git init&lt;/code&gt; we &lt;em&gt;tell&lt;/em&gt; Git to start the Version Control on this folder. When we type these commands on UNIX environments we can check everything went OK with a simple command &lt;code&gt;ls -a&lt;/code&gt; and we will see there's a hidden folder named &lt;code&gt;.git&lt;/code&gt; (On Windows is hidden but Windows-way) and is in this folder where all our files are going to be stored with all the changes we make to them. Let's see what &lt;code&gt;git status&lt;/code&gt; says:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;On branch master
No commits yet
nothing to commit &lt;span class="o"&gt;(&lt;/span&gt;create/copy files and use &lt;span class="s2"&gt;"git add"&lt;/span&gt; to track&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We will explain what a &lt;em&gt;branch&lt;/em&gt; is in future articles. Checking with &lt;code&gt;git status&lt;/code&gt; is a good way to check that everything is created and working. We are going to create an HTML file with very basic HTML5 structure/code, if you are not familiar with HTML, don't worry about it now as the content of the file doesn't matter.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;touch &lt;/span&gt;index.html
&lt;span class="nv"&gt;$ &lt;/span&gt;vim index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With &lt;code&gt;touch&lt;/code&gt; we create the file and with &lt;code&gt;vim&lt;/code&gt; we edit the same. The next code goes into the file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&lt;/span&gt; &lt;span class="na"&gt;lang=&lt;/span&gt;&lt;span class="s"&gt;"en"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;charset=&lt;/span&gt;&lt;span class="s"&gt;"UTF-8"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"viewport"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"width=device-width, initial-scale=1.0"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;http-equiv=&lt;/span&gt;&lt;span class="s"&gt;"X-UA-Compatible"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"ie=edge"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Our wonderful Git tutorial&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Getting started with Git&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And now again, let's see what &lt;code&gt;git status&lt;/code&gt; has to say.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;On branch master
No commits yet
Untracked files:
  &lt;span class="o"&gt;(&lt;/span&gt;use &lt;span class="s2"&gt;"git add &amp;lt;file&amp;gt;..."&lt;/span&gt; to include &lt;span class="k"&gt;in &lt;/span&gt;what will be committed&lt;span class="o"&gt;)&lt;/span&gt;
        index.html
nothing added to commit but untracked files present &lt;span class="o"&gt;(&lt;/span&gt;use &lt;span class="s2"&gt;"git add"&lt;/span&gt; to track&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If your screen looks similar to this, then everything went normal and if you have a look on the output you will read that Git found new file(s) (The HTML file we created before) but we didn't told Git that we wanted to &lt;em&gt;add&lt;/em&gt; this file to the &lt;em&gt;queue&lt;/em&gt; for the next &lt;em&gt;commit&lt;/em&gt;. We need to add manually the files we want to add to the next &lt;em&gt;commit&lt;/em&gt;, easy, just with &lt;code&gt;git add index.html&lt;/code&gt; but in case you have more files and let's say you want to add to the &lt;em&gt;queue&lt;/em&gt; all the files in the current folder, a simple &lt;code&gt;git add .&lt;/code&gt; will add all the files from this folder to the &lt;em&gt;queue&lt;/em&gt;. Now let's try again with &lt;code&gt;git status&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;On branch master
No commits yet
Changes to be committed:
  &lt;span class="o"&gt;(&lt;/span&gt;use &lt;span class="s2"&gt;"git rm --cached &amp;lt;file&amp;gt;..."&lt;/span&gt; to unstage&lt;span class="o"&gt;)&lt;/span&gt;
        new file:   index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is the exciting part, the mega famous &lt;em&gt;commit&lt;/em&gt;. A &lt;em&gt;commit&lt;/em&gt; for Git means, we are happy with all the changes and files in this folder and they are ready for putting them in the &lt;em&gt;release&lt;/em&gt;. *Commit*ting is a must, every change, every bug fix (hope you don't need to &lt;em&gt;commit&lt;/em&gt; many of those :P) and every new implementation you do must be reflected with a &lt;em&gt;commit&lt;/em&gt;. Why? Basically, because the best feature of a Version Control Software like Git, is the ability to revert to any of these changes in the &lt;em&gt;time line&lt;/em&gt; or in other words going back thru all the &lt;em&gt;commits&lt;/em&gt; you did, let's say you &lt;em&gt;committed&lt;/em&gt; a bug fix that doesn't work as you expected it to work then, with Git, you can just revert everything back as it was before the bug fix &lt;em&gt;commit&lt;/em&gt;. For our first &lt;em&gt;commit&lt;/em&gt;, all we need to type is &lt;code&gt;git commit -m "Initial commit"&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="o"&gt;[&lt;/span&gt;master &lt;span class="o"&gt;(&lt;/span&gt;root-commit&lt;span class="o"&gt;)&lt;/span&gt; 2fdbe1d] Initial commit
 1 file changed, 12 insertions&lt;span class="o"&gt;(&lt;/span&gt;+&lt;span class="o"&gt;)&lt;/span&gt;
 create mode 100644 index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And now our &lt;em&gt;huge&lt;/em&gt; project is safe. Okay, okay, maybe is not a &lt;em&gt;biiiig&lt;/em&gt; project and you just think 'Why I should use a Version Control??' but believe me, even for this small HTML page, we need to think bigger, look at the future and just imagine this small project becoming a 20 file project with around 800 lines per file. You would be thankful to have a way to go back in case your new &lt;em&gt;Payment Gateway Code&lt;/em&gt; gets frozen just in the middle of a transaction and the old &lt;em&gt;code&lt;/em&gt; was working just perfect.&lt;/p&gt;

&lt;p&gt;If you want to understand in depth what we have done so far is necessary to understand &lt;a href="https://fjp.es/en/tutorials/the-three-states-of-git/" rel="noopener noreferrer"&gt;the three States of Git&lt;/a&gt;, I encourage you to read the article.&lt;/p&gt;

&lt;p&gt;Just quick reminder, all the files we create or modify for this course are available in our &lt;a href="https://github.com/sargantanacode/git-tutorial" rel="noopener noreferrer"&gt;Git Tutorial Repo&lt;/a&gt; and in our &lt;a href="https://github.com/sargantanacode" rel="noopener noreferrer"&gt;Main GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;And Remember… never stop programming!&lt;/p&gt;

</description>
      <category>git</category>
      <category>beginners</category>
      <category>tutorial</category>
      <category>devops</category>
    </item>
    <item>
      <title>How to install Git on Linux, macOS and Windows</title>
      <dc:creator>Javi Palacios</dc:creator>
      <pubDate>Sat, 30 May 2026 17:12:48 +0000</pubDate>
      <link>https://dev.to/fj_palacios/how-to-install-git-on-linux-macos-and-windows-in8</link>
      <guid>https://dev.to/fj_palacios/how-to-install-git-on-linux-macos-and-windows-in8</guid>
      <description>&lt;p&gt;Now that we already explained &lt;a href="https://fjp.es/en/tutorials/what-is-git/" rel="noopener noreferrer"&gt;What the Heck is Git&lt;/a&gt;, probably you're thinking; how can I get it on my PC? Well, then look no more, in this course we're going to show you how to Install Git on Linux, macOS or Windows.&lt;/p&gt;

&lt;p&gt;During this How To, we won't use any &lt;em&gt;GUI&lt;/em&gt; (Graphical User Interface), instead, we will use &lt;em&gt;CUI&lt;/em&gt; (Character User Interface) or globally known as &lt;em&gt;Command Line Interface&lt;/em&gt;. Why? Simple, with the Graphical Front-end we loss many features that are not implemented on the available &lt;em&gt;GUI's&lt;/em&gt; for Git. Anyways, if you would like to try a beautiful designed App for Git, which personally, I like, is &lt;a href="https://desktop.github.com/" rel="noopener noreferrer"&gt;GitHub Desktop&lt;/a&gt;. As you can notice, this App is developed by GitHub (hence the name), works perfect for managing local and remote repositories, as the only exception is the remote &lt;em&gt;repo&lt;/em&gt; must be on GitHub. There are many alternatives for managing repos from the comfort of your PC but in this course we will focus on installing Git rather than showing all the alternatives (maybe in a next article?).&lt;/p&gt;

&lt;h3&gt;
  
  
  Installing Git in Linux
&lt;/h3&gt;

&lt;p&gt;On a Linux environment, the easiest way to get any software is thru the Package Manager included in your distribution (aptitude/apt, pacman and portage to name a few), &lt;em&gt;Why?&lt;/em&gt; because all you need to do is type in a console a simple command and the Package Manager does all the job: dependencies, conflicts with other packages/software and lately, updating the software for bug fixes and new features are effortless which makes the job of maintaining everything up to date easier. Let's see how to install Git thru the main Package Managers.&lt;/p&gt;

&lt;h4&gt;
  
  
  Debian
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# apt install git&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Ubuntu
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# apt install git&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you want to use a more recent version you can install the same package from the unstable repository&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# add-apt-repository ppa:git-core/ppa&lt;/span&gt;
&lt;span class="c"&gt;# apt update&lt;/span&gt;
&lt;span class="c"&gt;# apt install git&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  OpenSUSE
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# zypper install git&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  ArchLinux
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# pacman -S git&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Gentoo
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# emerge --ask --verbose dev-vcs/git&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you don't see your Distribution (Linux Flavour) in this list, we presume that you are familiar with compiling and working with the console, you will find your way around ;)&lt;/p&gt;

&lt;h3&gt;
  
  
  Installing Git on macOS
&lt;/h3&gt;

&lt;p&gt;Since a few releases, you can install Apple Developer Tools on macOS which includes Git but not the latest version. If you want to know what Git version you have installed just go into a terminal and type the next command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you have the Apple Developer Tools installed, that command will output the version of your currently installed Git, if not, &lt;em&gt;probably&lt;/em&gt; will ask you to install the Developer Tools.&lt;/p&gt;

&lt;p&gt;Don't worry, there's another option available for all of us who don't like to have outdated software. &lt;a href="https://brew.sh/" rel="noopener noreferrer"&gt;Homebrew&lt;/a&gt; is a Package Manager for macOS and help us install new software hassle-free. Would you like to try?&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;/usr/bin/ruby &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://raw.githubusercontent.com/Homebrew/install/master/install&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And after the installation is completed, let's use it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;brew &lt;span class="nb"&gt;install &lt;/span&gt;git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You're all set!&lt;/p&gt;

&lt;h4&gt;
  
  
  Installing Git on Windows
&lt;/h4&gt;

&lt;p&gt;Git is designed and developed for Unix environments, as you know, Windows has nothing to do with Unix, the installation on Windows is a bit more fuzzy. In this How To we are not installing Git on Windows, what we are doing is, install a &lt;em&gt;Linux CUI Emulator&lt;/em&gt; and get Git working this way.&lt;br&gt;
In recent versions, Git gives the option to be run directly from Windows Command Line (&lt;code&gt;cmd.exe&lt;/code&gt;), equaling Windows version to the Linux (or macOS), this way, the user doesn't feel much difference working with Git.&lt;/p&gt;

&lt;p&gt;We need to visit the &lt;a href="https://git-scm.com/download/win" rel="noopener noreferrer"&gt;Git for Windows&lt;/a&gt; and download our copy according to our computer's specifications. There's no instructions for this part of the installation... because there are no steps.. just &lt;em&gt;Next, Next, Next, Next, Finish&lt;/em&gt;! If everything went &lt;em&gt;Okay&lt;/em&gt;, we should be able to run Git from cmd (&lt;code&gt;cmd.exe&lt;/code&gt;)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the output we get is the version currently installed, then, everything is ready to go.&lt;/p&gt;

&lt;h3&gt;
  
  
  Setting up Git
&lt;/h3&gt;

&lt;p&gt;This part is universal as it works independently from the Operating System you use.&lt;/p&gt;

&lt;p&gt;The first step is setting up our username and email, this way, whenever we submit a change to the repository, we can be able to track who did what changes to the code/repo. Change the commands with your own before executing these.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.name &lt;span class="s2"&gt;"Your Name"&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.email your.email@example.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We can set the default text editor when we do a &lt;em&gt;commit&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git config &lt;span class="nt"&gt;--global&lt;/span&gt; core.editor vim
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And we can test the configuration for any errors:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git config &lt;span class="nt"&gt;--list&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is the end of this part of the course, we installed Git in different Operating Systems and we set it up for initial running! Keep an eye for more courses coming for this excellent Version Control Software. For now, you can learn how to do &lt;a href="https://fjp.es/en/tutorials/getting-started-with-git/" rel="noopener noreferrer"&gt;your first commit in Git&lt;/a&gt;. :)&lt;/p&gt;

&lt;p&gt;Remember… Never stop programming!&lt;/p&gt;

</description>
      <category>git</category>
      <category>tutorial</category>
      <category>beginners</category>
      <category>devops</category>
    </item>
    <item>
      <title>What is Git?</title>
      <dc:creator>Javi Palacios</dc:creator>
      <pubDate>Fri, 29 May 2026 13:16:31 +0000</pubDate>
      <link>https://dev.to/fj_palacios/what-is-git-fd8</link>
      <guid>https://dev.to/fj_palacios/what-is-git-fd8</guid>
      <description>&lt;p&gt;&lt;a href="https://git-scm.com/" rel="noopener noreferrer"&gt;Git&lt;/a&gt; is one of the &lt;strong&gt;Version Control Systems&lt;/strong&gt; that have appeared over the time to make developers life easier. It's the last to arrive, although its &lt;em&gt;youth&lt;/em&gt; in this case is a pro rather than a con. It has had the opportunity to meet deficiencies and defects of his predecessors (&lt;a href="https://subversion.apache.org/" rel="noopener noreferrer"&gt;Subversion&lt;/a&gt; mainly) and it has come just to make the tasks that were once complex now ridiculously easy. By the way, this is another great project of a guy known as &lt;a href="https://es.wikipedia.org/wiki/Linus_Torvalds" rel="noopener noreferrer"&gt;Linus Torvalds&lt;/a&gt;, maybe you've heard of him. :-P&lt;/p&gt;

&lt;p&gt;Git is a free project, you can find the &lt;a href="https://github.com/git/git" rel="noopener noreferrer"&gt;source code&lt;/a&gt; at GitHub to consult or to learn; most used programming language is C, so if you are interested in how people who most dominates this language write his code is a good idea to keep an eye on the repository.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is a Version Control System?
&lt;/h3&gt;

&lt;p&gt;We mentioned at the beginning of this article &lt;strong&gt;version control system&lt;/strong&gt; but we don't have to give for known things maybe someone doesn't know, so what is a version control system? For us, as developers, mainly a way to keep track of the changes that we have been doing and be able to go back easily when something that we coded doesn't work as expected. We have to forget to remember how it was some part of the code when everything worked properly, and also forget to be commenting portions of code which then never removed and left there to remember in a sort of Horror Museum with code that no one knows what was doing or why it's there.&lt;/p&gt;

&lt;p&gt;But that is not the only one of its virtues: a VCS also allows us to work in parallel (in Git thanks to the use of &lt;em&gt;branches&lt;/em&gt;) in different versions of our application; on the one hand, because we don't know how to deal with a change, and we want to try different ways to finally see what is more efficient and discard others; on the other hand, because we are working at the same time (one or more than one person) in different parts of the project and that some portions of code modifications do not have why affect nor interrupt the rest of development… Basically, be able to auto-merge in many cases those changes and get everything under control.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why Git rocks?
&lt;/h3&gt;

&lt;p&gt;The main difference between Git and Subversion is that Git works at local. Subversion sent information of each change in the code to a server, which is who was keeping the &lt;em&gt;timeline&lt;/em&gt; of your modifications. Git does this process on our own computer, whenever you use Git the answer is immediate because it doesn't depend on an internet connection… It's also the concept of the &lt;strong&gt;remotes&lt;/strong&gt; (to add servers such as &lt;a href="https://github.com/" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; or &lt;a href="https://gitlab.com/" rel="noopener noreferrer"&gt;GitLab&lt;/a&gt;… but also some less known as a coworker server or the server of our company) that we will see in depth later, but they're not needed in any case, just give us a &lt;em&gt;window&lt;/em&gt; of our code and in some cases, through some configurations, extra services like &lt;a href="https://travis-ci.org/" rel="noopener noreferrer"&gt;Travis CI&lt;/a&gt; at GitHub, that is used to run our test battery every time we send a change so that we know if that change has passed the test or &lt;em&gt;has broken something&lt;/em&gt;, this is a simple way to automate the test that everyone should have on each of the projects we do.&lt;/p&gt;

&lt;p&gt;The non-dependence of an internet connection is something that is greatly appreciated, especially if at some point you've used a version control system that practically can do nothing if you don't have access to the server that houses all your information with all of your saved changes. If we are working as a team, we can work anywhere and simply require an internet connection when we want all the changes to be sent to a &lt;em&gt;remote&lt;/em&gt; server to let others know what we've changed, or if you work on a personal project does not require internet connection for nothing… Oh, how wonderful is this!&lt;/p&gt;

&lt;p&gt;We hope that you've been wanting to learn more about Git and that you are aware of upcoming publications, because in next chapters of this series we will &lt;a href="https://fjp.es/en/tutorials/how-to-install-git-on-linux-macos-and-windows/" rel="noopener noreferrer"&gt;learn how to install Git&lt;/a&gt; and we will discover major Git commands, how to use Git in a proper way, and if you want to go a step further to master Git we will review some of the most widely used conventions to make our experience with this version control system a success.&lt;/p&gt;

&lt;p&gt;Never stop coding!&lt;/p&gt;

</description>
      <category>git</category>
      <category>beginners</category>
      <category>tutorial</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
