Una guía definitiva para Git y Github

Puntos destacados del artículo:  

  1. Introducción a Git
  2. Estructura del repositorio Git
  3. Github
  4. Acceder al repositorio central de Github a través de HTTPS o ssh
  5. Trabajando con git – Comandos importantes de Git

Introducción a Git

Para fines de instalación en ubuntu, puede consultar este artículo: ¿Cómo instalar, configurar y usar GIT en Ubuntu? 

Git es un sistema de control de versiones distribuido. Entonces, ¿qué es un sistema de control de versiones? 

Un sistema de control de versiones es un sistema que mantiene diferentes versiones de su proyecto cuando trabajamos en equipo o individualmente. (sistema que gestiona los cambios en los archivos) A medida que avanza el proyecto, se le agregan nuevas funciones. Por lo tanto, un sistema de control de versiones mantiene todas las diferentes versiones de su proyecto por usted y puede retroceder a cualquier versión que desee sin causarle ningún problema por mantener diferentes versiones dándole nombres como MyProject, MyProjectWithFeature1, etc. 

El sistema de control de versiones distribuidas significa que cada colaborador (cualquier desarrollador que trabaje en un proyecto de equipo) tiene un repositorio local del proyecto en su máquina local, a diferencia del central, donde los miembros del equipo deben tener una conexión a Internet para actualizar cada vez su trabajo en el repositorio central principal. . 

Entonces, por distribuido queremos decir: el proyecto está distribuido. Un repositorio es un área que guarda todos los archivos de su proyecto, imágenes, etc. En términos de Github: diferentes versiones de proyectos corresponden a confirmaciones. 
Para obtener más detalles sobre la introducción a Github, puede consultar: Introducción a Github 

Estructura del repositorio Git

Consta de 4 partes:  

  1. Directorio de trabajo: este es su directorio local donde crea el proyecto (escribe el código) y realiza cambios en él.
  2. Área de ensayo (o índice): esta es un área donde primero debe colocar su proyecto antes de comprometerse. Esto se usa para la revisión del código por parte de otros miembros del equipo.
  3. Repositorio local: este es su repositorio local donde realiza cambios en el proyecto antes de enviarlos al repositorio central en Github. Esto es lo que proporciona el sistema de control de versiones distribuidas. Esto corresponde a la carpeta .git en nuestro directorio.
  4. Repositorio central: este es el proyecto principal en el servidor central, una copia del cual está con cada miembro del equipo como un repositorio local.

Toda la estructura del repositorio es interna de Git y es transparente para el desarrollador. 

Algunos comandos relacionados con la estructura del repositorio:  

// transfers your project from working directory
// to staging area.
git add .

// transfers your project from staging area to 
// Local Repository.
git commit -m "your message here"


// transfers project from local to central repository.
// (requires internet)
git push

Github

Básicamente, Github es una empresa con fines de lucro propiedad de Microsoft, que aloja repositorios de Git en línea. Ayuda a los usuarios a compartir su repositorio git en línea, con otros usuarios o acceder a él de forma remota. También puede alojar un repositorio público de forma gratuita en Github. 

El usuario comparte su repositorio en línea por varias razones, que incluyen, entre otras, la implementación de proyectos, el intercambio de proyectos, la contribución de código abierto, ayudar a la comunidad y muchos más.

Acceder al repositorio central de Github a través de HTTPS o SSH

Aquí, transferir proyecto significa transferir cambios, ya que git es muy liviano y funciona en los cambios en un proyecto. Internamente realiza la transferencia utilizando técnicas de compresión sin pérdidas y transfiriendo archivos comprimidos. Https es la forma predeterminada de acceder al repositorio central de Github.  

  • Por git remote add origin http_url: remoto significa el repositorio central remoto. El origen corresponde a su repositorio central que debe definir (por lo tanto, proporciona la URL HTTPS) para enviar cambios a Github.
  • A través de SSH: conéctese a Linux u otros servidores de forma remota.

Si accede a Github por ssh, no necesita escribir su nombre de usuario y contraseña cada vez que envía cambios a GitHub. 

Comandos terminales: 

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
This does the ssh key generation using RSA cryptographic algorithm.

eval "$(ssh-agent -s)" -> enable information about local login session.

ssh-add ~/.ssh/id_rsa -> add to ssh key.
cat ~/.ssh/id_rsa (use .pub file if not able to connect)
add this ssh key to github.


Now, go to github settings -> new ssh key -> create key

ssh -T git@github.com -> activate ssh key (test connection)

Refresh your github Page.

Trabajando con git – Comandos importantes de Git 

Configuración de usuario de Git (primer paso)  

git --version (to check git version)
git config --global user.name "your name here"
git config --global user.email "your email here"

Esta es la información adjunta a las confirmaciones.  

Inicializar directorio 

git init 

inicializa su directorio para trabajar con git y crea un repositorio local. Se crea la carpeta .git (O) 

git clone http_url 

Esto se hace si tenemos un repositorio git existente y queremos copiar su contenido a un lugar nuevo.

Conexión al repositorio  remoto

git remote add origin http_url/ssh_url 

conéctese al repositorio central para empujar/tirar. pull significa adoptar los cambios en el repositorio remoto a su repositorio local. push combina los cambios de su repositorio local con el repositorio remoto.  

git pull origin master

Uno siempre debe extraer primero los contenidos del repositorio central antes de presionar para que esté actualizado con el trabajo de otros miembros del equipo. Ayuda a prevenir conflictos de fusión. Aquí, maestro significa la rama maestra (en Git).  

Pasos para agregar un archivo a un Repositorio remoto: 

Primero, su archivo está en su directorio de trabajo. Muévalo al área de preparación escribiendo:  

git add -A (for all files and folders)
#To add all files only in the current directory
git add .

estado de git: aquí, los archivos sin seguimiento significan archivos que no ha agregado al área de ensayo. Los cambios no se preparan para la confirmación significa que ha preparado el archivo antes de haber realizado cambios en esos archivos en su directorio de trabajo y los cambios deben organizarse una vez más. Cambios listos para confirmar: estos son archivos que se han confirmado y están listos para enviarse al repositorio central.  

git commit -a -m "message for commit"
-a: commit all files and for files that have been 
     staged earlier need not to be git add once more
-a option does that automatically.
git push origin master -> pushes your files to 
                         github master branch
git push origin anyOtherBranch -> pushes any 
                      other branch to github.
git log ; to see all your commits
git checkout commitObject(first 8 bits) file.txt-> 
revert back to this previous commit for file file.txt

Las confirmaciones anteriores pueden verse a través del comando git log. 

HEAD -> pointer to our latest commit.  

Ignorar archivos mientras se confirma

En muchos casos, el proyecto crea muchos registros y otros archivos irrelevantes que deben ignorarse. Entonces, para ignorar esos archivos, tenemos que poner sus nombres en el archivo «.gitignore» .  

touch .gitignore
echo "filename.ext" >>.gitignore
#to ignore all files with .log extension
echo "*.log" > .gitignore

Ahora, los nombres de archivo escritos en el archivo .gitignore se ignorarán al enviar una nueva confirmación. Para obtener los cambios entre confirmaciones, confirmación y árbol de trabajo. 

git diff

El comando ‘git diff’ compara el área de preparación con el directorio de trabajo y nos dice los cambios realizados. Compara la información anterior así como la información modificada actual. 

Ramificación en Git 

create branch ->
git branch myBranch
or
git checkout -b myBranch -> make and switch to the 
                                  branch myBranch

Haz el trabajo en tu sucursal. Después, 

git checkout master ; to switch back to master branch

Ahora, fusione contenidos con su myBranch Por: 

git merge myBranch (writing in master branch)

Esta fusión crea una nueva confirmación. 

De otra manera 

git rebase myBranch

Esto fusiona la rama con el maestro de forma serial. Ahora,  

git push origin master

Contribuyendo al código abierto

El código abierto podría considerarse como una forma en la que los usuarios de todo el mundo pueden compartir sus opiniones, personalizaciones o trabajar juntos para resolver un problema o completar juntos un proyecto deseado. Muchas empresas alojan sus repositorios en línea en Github para permitir el acceso a los desarrolladores para realizar cambios en su producto. Algunas empresas (no necesariamente todas) recompensan a sus colaboradores de diferentes maneras.

Puede contribuir a cualquier proyecto de código abierto en Github bifurcándolo, realizando los cambios deseados en el repositorio bifurcado y luego abriendo una solicitud de extracción. El propietario del proyecto revisará su proyecto y le pedirá que lo mejore o lo fusione. 

Publicación traducida automáticamente

Artículo escrito por Sushant Oberoi y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *