# Agregar archivos a repositorio GitHub con Git

[`🇺🇸 Inglés`](https://crisprogramming.hashnode.dev/adding-files-to-github-repository-with-git)

1.- Inicialmente debe ejecutar el comando `git pull origin main` para descargar los últimos cambios de los archivos desde el repositorio remoto al repositorio local. Los desarrolladores usan este comando si un compañero de equipo ha realizado confirmaciones en una rama en un control remoto y les gustaría reflejar esos cambios en su entorno local.

```jsx
git pull origin main
```

2.- Si usted crea un archivo nuevo para el proyecto y ejecuta el comando `git status`, el nombre del archivo se muestra en color rojo indicando que el directorio de trabajo tiene una modificación.

(Área: Directorio de trabajo - Modificada)

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1678890916286/16b83c21-875d-4b62-a7a5-b3e231392c96.png align="center")

3.- Agregar el archivo al `área de preparación` con el comando `git add <nombre-archivo>`

(Área: Preparación - Preparada)

```jsx
git add 30class.rb
```

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1678891044720/f60b41d9-4deb-4221-bfeb-0e905224e46d.png align="center")

Otra forma de hacerlo es usando el comando `git add .` para agregar todos los archivos nuevo en un solo intento.

```jsx
git add .
```

4.- Ejecute el comando `git commit -m <mensaje>` para crear un mensaje con el cambio. Este comando guarda en el historial del proyecto los cambios que se realizaron en los archivos en comparación con la versión anterior. En el `"<mensaje>"` debe escribir el mensaje que describe los cambios.

(Área: Directorio .git - Confirmación)

```jsx
git commit -m "mensaje"
```

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1678891137272/6fa01468-f956-490c-940e-7aae99c31ac3.png align="center")

Si usted desea especificar más detalles en el mensaje puede ejecutar el comando `git commit -a` para abrir un editor de archivo.

```jsx
git commit -a
```

Escribir el mensaje y salir del editor con `ESC + Shift + :` y luego escribir `:wq` para guardar cambio del texto agregado. (*En Mac*)

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1678891231610/5c42849b-89fd-4035-909f-febc18d04d03.png align="center")

5.- Enviar los cambios de confirmación con el comando `git push origin main` desde el repositorio local al repositorio remoto.

```jsx
git push origin main
```

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1678891405781/50fd07ca-3aeb-47ac-8b8d-3fe2829930b9.png align="center")

6.- Ver el historial de cambios con el comando `git log`, este muestran las estructuras de cada commit como un historial.

```jsx
git log
```

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1678891443761/3a65e8f5-bd3d-4333-b970-fb5a8278d65e.png align="center")

### **Referencia:**

[**https://git-scm.com/book/es/v2**](https://git-scm.com/book/es/v2)
