Git para principiantes absolutos

Si eres nuevo en el mundo de la programación, entonces aprender Git debería estar en la parte superior de tu lista de prioridades.

Git es una de esas herramientas que encontrará en el día a día como parte de su trabajo.

Que puedes esperar en esta publicación

En esta publicación, proporcionaré una descripción general de Git y cómo comenzar con él.

  • ¿Qué es Git?
  • Terminologías asociadas con Git
  • Interactuar con Git usando la línea de comando

Prometo explicar los temas de la manera más simplificada que pueda.

Entonces, comencemos por comprender, ¿qué es Git?

Git es un sistema de control de versiones.

Ahora, ¿qué diablos es un sistema de control de versiones (VCS)?

Un VCS supervisa y realiza un seguimiento de todos los cambios realizados en los archivos que supervisa.

También permite que varios desarrolladores compartan y trabajen en colaboración en el mismo conjunto de archivos, sin entrar en conflicto con el trabajo de los demás.

No solo realiza un seguimiento de los archivos que se cambiaron, sino que también realiza un seguimiento de

  • ¿Qué cambios se hicieron?
  • ¿Quiénes hicieron estos cambios?
  • Cuando se realizaron estos cambios.

Para compartir y trabajar en colaboración con otros desarrolladores, necesita acceso a un servicio alojado basado en Git.

Algunos de los proveedores de servicios alojados en Git más populares son:

  • GitHub
  • Bitbucket
  • Servicios de equipo de Microsoft Visual Studio

Todos ellos ofrecen un tipo de funcionalidad similar.

¿Qué es un repositorio en Git?

Un repositorio es una carpeta cuyo contenido es rastreado por Git. También se conoce como repositorio , en términos simples.

Un repositorio puede tener varios archivos y subcarpetas presentes en él. Por lo general, los archivos que están presentes en el repositorio contienen código fuente.

Dentro de cada repositorio, hay una carpeta .git . Esta carpeta contiene todos los archivos y carpetas requeridos por Git para realizar un seguimiento de todos los cambios realizados en los archivos dentro de este repositorio.

Si eliminamos esta carpeta .git, Git no identificará esta carpeta como un repositorio ni rastreará su contenido.

El repositorio presente en la computadora local se denomina repositorio local , y el repositorio ubicado en una plataforma Git alojada se denomina repositorio remoto .

Descarga e instala Git

Descargar e instalar Git es un proceso bastante sencillo.

Puedes descargar Git desde aquí.

Una vez que se haya descargado Git, puede consultar esta guía sobre cómo instalarlo.

Inicializar un repositorio de Git

Antes de continuar y comenzar a rastrear nuestros archivos usando Git, necesitamos inicializar Git para la carpeta que queremos que Git monitoree.

En términos simples, Git convierte una carpeta en un repositorio para que pueda rastrear su contenido.

Para inicializar una carpeta en un repositorio de Git:

En un sistema basado en Windows, debemos hacer clic derecho en la carpeta (nos gustaría que Git nos rastreara) y luego hacer clic en "Git Bash Here". Esto abre un símbolo del sistema como una ventana, que nos permite interactuar con Git usando los comandos de Git.

Nota: Siempre que nos gustaría interactuar con Git, estaremos interactuando usando comandos de Git a través de esta ventana de Git Bash. También tenga en cuenta que los comandos de Git no difieren para los sistemas basados ​​en Windows y Unix.

Dentro de la ventana de Git Bash, debemos escribir el comando:

git init

Este comando inicializa la carpeta. Básicamente, convierte esta carpeta en un repositorio de Git.

Como parte de este proceso de inicialización, también crea una carpeta .git (que es una carpeta oculta) dentro de este repositorio. Contiene todos los archivos requeridos por Git para rastrear todos los cambios realizados en este repositorio.

Pero esta es solo una carpeta normal como otras carpetas que tenemos en el sistema. En la terminología de Git, todavía nos referimos a esto como un repositorio o un repositorio local, para ser más precisos.

En un sistema basado en Unix, simplemente navegamos hasta el directorio (que le gustaría que Git rastree) y ejecutamos el comando git init , eso es todo. Esto convierte este directorio en un repositorio de Git.

Estado del repositorio

En cualquier momento si queremos ver lo que Git está rastreando dentro de un repositorio, podemos hacerlo escribiendo el comando a continuación:

git status

Veremos este comando con más detalle en algún momento más adelante en la publicación.

Por ahora, recuerde, si queremos ver qué está siendo rastreado dentro de un repositorio por Git, podemos hacerlo usando ese comando.

Seguimiento de un repositorio

Aunque hemos inicializado la carpeta como un repositorio de Git, su contenido no será rastreado automáticamente. Necesitamos instruir a Git para que monitoree su contenido.

Para hacer eso, usamos el comando git add . La sintaxis de este comando es la que se muestra a continuación:

git add file [file] [file..]
Nota: Todo lo que esté entre corchetes [] es opcional. Esto se aplica a todos los comandos de Git enumerados en esta publicación.

Podemos especificar un solo archivo o varios archivos para que sean rastreados por Git.

Si queremos que Git monitoree archivos específicos presentes en el repositorio, podemos hacerlo especificando el nombre de archivo individual de cada archivo que nos gustaría rastrear.

En caso de que queramos rastrear archivos que pertenecen a un tipo de archivo específico, podemos hacerlo especificando su extensión de archivo, como se muestra a continuación. Esto rastrea todos los archivos que terminan con la extensión .txt.

$ git add *.txt

Si queremos que Git rastree todos los archivos presentes en el repositorio, la sintaxis es la que se muestra a continuación.

$ git add .

Let’s say we have the following files present within our repository:

As you can see even the .git folder has been created as part of the initialization process. Originally this folder was hidden — I had to change the folder properties to make it visible (just to show it to you all).

This is how a .git folder looks, immediately after the git init command is executed.

This is how the contents of the .git folder look after a few transactions have been done to the repository.

To check what all files are currently being tracked by Git, we can make use of the git status command:

$ git status On branch master No commits yet Untracked files: (use “git add …” to include in what will be committed) HelloWorld.html Notes.txt README.md nothing added to commit but untracked files present (use “git add” to track)

Looking at the output of the git status command, it indicates that none of the files are currently being tracked by Git.

Let’s go ahead and add these files so that they get tracked by Git.

The command for adding these files is as shown below:

$ git add HelloWorld.html Notes.txt

Now, let’s execute the git status command and check its output.

$ git status On branch master No commits yet Changes to be committed: (use “git rm — cached …” to unstage) new file: HelloWorld.html new file: Notes.txt Untracked files: (use “git add …” to include in what will be committed) README.md

As we can see, we have the HelloWorld.txt and the Notes.txt files present within the staging area that are waiting to be committed.

The README.md file isn’t being tracked at all, as we didn’t include this file within the git add command which we executed earlier.

When we executed the git add command, Git staged all the files which were specified as part of the input to this command.

Until we commit these files, Git won’t start tracking these files.

Committing Staged Files

Let’s commit these staged files by typing the command shown below.

$ git commit -m ‘Initial Commit’

git commit is the command which is used to commit any staged files, -m is used to specify the comments for this commit operation.

If we would like to view all the commit operations that have been performed, we can do it by typing the git log command, as shown below.

$ git log commit 8525b32ffcb92c731f5d04de7fe285a2d0ebe901 (HEAD -> master) Author: shahzan  Date: Sun Apr 28 01:12:20 2019 +0100 Initial Commit

Whenever any change is done to a file which is being tracked by Git, we need to re-stage those files and re-commit them again. Until those files are not re-staged and re-committed, they will be tracked by Git.

I have done some minor changes to the Notes.txt file, let’s see what Git has got to say about these changes by executing the git status command.

$ git status On branch master Changes not staged for commit: (use “git add …” to update what will be committed) (use “git checkout — …” to discard changes in working directory) modified: Notes.txt Untracked files: (use “git add …” to include in what will be committed) README.md no changes added to commit (use “git add” and/or “git commit -a”)

Looking at the above output block, it is clear that the file Notes.txt has been modified and the changes are not staged for commit.

We make use of the same git add command to re-stage the file.

$ git add Notes.txt [email protected] MINGW64 /d/Medium Post Pics/Git/Source Code (master) $ git status On branch master Changes to be committed: (use “git reset HEAD …” to unstage) modified: Notes.txt Untracked files: (use “git add …” to include in what will be committed) README.md

As you can notice from the above output block, the file has been staged and is waiting to be committed.

Again, we make use of the same git commit command to re-commit the staged file.

$ git commit -m ‘Notes.txt file updated’ [master 184fcad] Notes.txt file updated 1 file changed, 3 insertions(+), 1 deletion(-)

Let’s execute the git log command and see if the commit has been successful.

$ git log commit 184fcad4185296103cd9dba0da83520399a11383 (HEAD -> master) Author: shahzans  Date: Sun Apr 28 01:15:38 2019 +0100 Notes.txt file updated commit 8525b32ffcb92c731f5d04de7fe285a2d0ebe901 Author: shahzans  Date: Sun Apr 28 01:12:20 2019 +0100 Initial Commit

As you may notice in the above output block, both the commit operations are being displayed.

Ignoring Files

Within the repository, there may be files that hold sensitive data or log data, which we don’t want to be tracked by Git under any circumstances.

.gitignore is the file within which we can specify all the files we don’t want Git to keep track of.

$ touch .gitignore

The syntax to create this file is as shown above.

Let’s say that I do not want Git to track any file ending with the .md extension.

Before adding *.md to the .gitignore file, have a look at the output of the git status command as shown in the output block below.

$ git status On branch master Untracked files: (use “git add …” to include in what will be committed) .gitignore README.md nothing added to commit but untracked files present (use “git add” to track)

As you may notice, we have .gitignore and README.md being shown as untracked files.

After adding *.md to the .gitignore file, the git status is as shown in the output block below.

As you may notice, we now just have .gitignore being shown as an untracked file.

$ git status On branch master Untracked files: (use “git add …” to include in what will be committed) .gitignore nothing added to commit but untracked files present (use “git add” to track)

You can either specify an individual filename or a wildcard entry within the .gitignore file.

The Wrap-Up

Git is a very powerful tool and there is a lot more you could do with it, such as branching, merging, pull and push request and much more.

Just in case you’re interested in learning more about Git, here is a course that I would recommend you to enroll (affiliate link).

Before you say goodbye…

Let’s keep in touch, click here to enter your email address (Use this link if the above widget doesn’t show up on your screen).

Thank you so much for taking your precious time to read this post.