Comenzando con Git

Cree su primer repositorio, luego agregue y confirme archivos

En la línea de comando, primero verifique que tenga Git instalado:

En todos los sistemas operativos:

git --version

En sistemas operativos tipo UNIX:

which git

Si no se devuelve nada o no se reconoce el comando, es posible que deba instalar Git en su sistema descargando y ejecutando el instalador. Consulte la página de inicio de Git para obtener instrucciones de instalación excepcionalmente claras y sencillas.

Después de instalar Git, [configure su nombre de usuario y dirección de correo electrónico][2]. Haz esto antes de hacer una confirmación.

Una vez que Git esté instalado, navegue hasta el directorio que desea colocar bajo el control de versiones y cree un repositorio de Git vacío:

git init

Esto crea una carpeta oculta, .git, que contiene las conexiones necesarias para que Git funcione.

Luego, verifique qué archivos agregará Git a su nuevo repositorio; este paso merece un cuidado especial:

git status

Revise la lista resultante de archivos; puede decirle a Git cuál de los archivos debe colocar en el control de versiones (evite agregar archivos con información confidencial, como contraseñas o archivos que simplemente saturan el repositorio):

git add <file/directory name #1> <file/directory name #2> < ... >

Si todos los archivos de la lista deben compartirse con todos los que tienen acceso al repositorio, un solo comando agregará todo en su directorio actual y sus subdirectorios:

git add .

Esto [“preparará”][3] todos los archivos que se agregarán al control de versiones, preparándolos para su confirmación en su primera confirmación.

Para los archivos que nunca desea que estén bajo control de versiones, cree y complete un archivo llamado .gitignore antes ejecutando el comando add.

Confirme todos los archivos que se han agregado, junto con un mensaje de confirmación:

git commit -m "Initial commit"

Esto crea un nuevo [commit][4] con el mensaje dado. Una confirmación es como un guardado o una instantánea de todo su proyecto. Ahora puede [push][5], o subirlo a un repositorio remoto, y luego puede volver a él si es necesario. Si omite el parámetro -m, su editor predeterminado se abrirá y podrá editar y guardar el mensaje de confirmación allí.

Agregar un control remoto

Para agregar un nuevo control remoto, use el comando git remote add en la terminal, en el directorio en el que está almacenado su repositorio.

El comando git remote add toma dos argumentos:

  1. Un nombre remoto, por ejemplo, origen

  2. Una URL remota, por ejemplo, https://<your-git-service-address>/user/repo.git

     git remote add origin https://<your-git-service-address>/owner/repository.git
    

NOTA: Antes de agregar el control remoto, debe crear el repositorio requerido en su servicio git, Podrá enviar/retirar confirmaciones después de agregar su control remoto.

[2]: https://www.wikiod.com/es/git/comenzando-con-git#Configuración de su nombre de usuario y correo electrónico [3]: https://www.wikiod.com/es/git/puesta-en-escena [4]: https://www.wikiod.com/es/git/cometer [5]: https://www.wikiod.com/es/git/emprendedor [6]: https://www.wikiod.com/es/git

Clonar un repositorio

El comando git clone se usa para copiar un repositorio Git existente desde un servidor a la máquina local.

Por ejemplo, para clonar un proyecto de GitHub:

cd <path where you'd like the clone to create a directory>
git clone https://github.com/username/projectname.git

Para clonar un proyecto de BitBucket:

cd <path where you'd like the clone to create a directory>
git clone https://[email protected]/username/projectname.git

Esto crea un directorio llamado nombre del proyecto en la máquina local, que contiene todos los archivos en el repositorio remoto de Git. Esto incluye los archivos fuente del proyecto, así como un subdirectorio .git que contiene el historial completo y la configuración del proyecto.

Para especificar un nombre diferente del directorio, p. Mi Carpeta:

git clone https://github.com/username/projectname.git MyFolder

O para clonar en el directorio actual:

git clone https://github.com/username/projectname.git .

Nota:

  1. Al clonar a un directorio específico, el directorio debe estar vacío o no existir.

  2. También puede usar la versión ssh del comando:

    git clone [email protected]:username/projectname.git
    

La versión https y la versión ssh son equivalentes. Sin embargo, algunos servicios de hospedaje como GitHub recomiendan que use https en lugar de ssh.

Compartir código

Para compartir su código, cree un repositorio en un servidor remoto al que copiará su repositorio local.

Para minimizar el uso de espacio en el servidor remoto, crea un repositorio simple: uno que solo tiene los objetos .git y no crea una copia de trabajo en el sistema de archivos. Como beneficio adicional, establece este control remoto como un servidor ascendente para compartir actualizaciones fácilmente con otros programadores.

En el servidor remoto:

git init --bare /path/to/repo.git

En la máquina local:

git remote add origin ssh://[email protected]:/path/to/repo.git

(Tenga en cuenta que ssh: es solo una forma posible de acceder al repositorio remoto).

Ahora copia tu repositorio local al remoto:

git push --set-upstream origin master

Agregar --set-upstream (o -u) creó una referencia ascendente (seguimiento) que se utiliza en los comandos de Git sin argumentos, p. git pull.

1: https://www.wikiod.com/es/git/comenzando-con-git#Configuración del control remoto ascendente

Configuración de su nombre de usuario y correo electrónico

You need to set who you are *before* creating any commit.  That will allow commits to have the right author name and email associated to them.

No tiene nada que ver con la autenticación cuando se envía a un repositorio remoto (por ejemplo, cuando se envía a un repositorio remoto usando su cuenta de GitHub, BitBucket o GitLab)

Para declarar esa identidad para todos los repositorios, usa git config --global Esto almacenará la configuración en el archivo .gitconfig de su usuario: p. $HOME/.gitconfig o para Windows, %USERPROFILE%\.gitconfig.

git config --global user.name "Your Name"
git config --global user.email [email protected]

Para declarar una identidad para un solo repositorio, use git config dentro de un repositorio. Esto almacenará la configuración dentro del repositorio individual, en el archivo $GIT_DIR/config. p.ej. /ruta/a/su/repositorio/.git/config.

cd /path/to/my/repo
git config user.name "Your Login At Work"
git config user.email [email protected]

La configuración almacenada en el archivo de configuración de un repositorio tendrá prioridad sobre la configuración global cuando utilice ese repositorio.


Sugerencias: si tiene diferentes identidades (una para un proyecto de código abierto, una en el trabajo, una para repositorios privados, …), y no quiere olvidarse de configurar la correcta para cada repositorio diferente en el que esté trabajando :

  • Eliminar una identidad global

    git config --global --remove-section user.name
    git config --global --remove-section user.email
    
  • Para obligar a git a buscar su identidad solo dentro de la configuración de un repositorio, no en la configuración global:

      git config --global user.useConfigOnly true
    

De esa forma, si olvida configurar su user.name y user.email para un repositorio determinado e intenta realizar una confirmación, verá:

no name was given and auto-detection is disabled
no email was given and auto-detection is disabled

Configuración del control remoto ascendente

Si ha clonado una bifurcación (por ejemplo, un proyecto de código abierto en Github), es posible que no tenga acceso de inserción al repositorio ascendente, por lo que necesita tanto su bifurcación como la posibilidad de obtener el repositorio ascendente.

Primero verifique los nombres remotos:

$ git remote -v
origin    https://github.com/myusername/repo.git (fetch)
origin    https://github.com/myusername/repo.git (push)
upstream  # this line may or may not be here

Si upstream ya está allí (está en algunas versiones de Git), debe configurar la URL (actualmente está vacía):

$ git remote set-url upstream https://github.com/projectusername/repo.git

Si el upstream no está allí, o si también desea agregar la bifurcación de un amigo/colega (actualmente no existe):

$ git remote add upstream https://github.com/projectusername/repo.git
$ git remote add dave https://github.com/dave/repo.git

Aprender sobre un comando

Para obtener más información sobre cualquier comando de git, es decir, detalles sobre lo que hace el comando, las opciones disponibles y otra documentación, use la opción --help o el comando help.

Por ejemplo, para obtener toda la información disponible sobre el comando git diff, use:

git diff --help
git help diff

De manera similar, para obtener toda la información disponible sobre el comando status, use:

git status --help
git help status

Si solo desea una ayuda rápida que le muestre el significado de los indicadores de línea de comando más utilizados, use -h:

git checkout -h

Configurar SSH para Git

Si está utilizando Windows, abra Git Bash. Si está utilizando Mac o Linux, abra su Terminal.

Antes de generar una clave SSH, puede verificar si tiene alguna clave SSH existente.

Enumere el contenido de su directorio ~/.ssh:

$ ls -al ~/.ssh 
# Lists all the files in your ~/.ssh directory

Consulte la lista del directorio para ver si ya tiene una clave SSH pública. De forma predeterminada, los nombres de archivo de las claves públicas son uno de los siguientes:

id_dsa.pub
id_ecdsa.pub
id_ed25519.pub
id_rsa.pub

Si ve un par de claves públicas y privadas existentes que le gustaría usar en su cuenta de Bitbucket, GitHub (o similar), puede copiar el contenido del archivo id_*.pub.

De lo contrario, puede crear un nuevo par de claves pública y privada con el siguiente comando:

$ ssh-keygen

Pulse la tecla Intro o Retorno para aceptar la ubicación predeterminada. Ingrese y vuelva a ingresar una frase de contraseña cuando se le solicite, o déjela vacía.

Asegúrese de que su clave SSH se agregue al ssh-agent. Inicie el ssh-agent en segundo plano si aún no se está ejecutando:

$ eval "$(ssh-agent -s)"

Agregue su clave SSH al ssh-agent. Tenga en cuenta que deberá reemplazar id_rsa en el comando con el nombre de su archivo de clave privada:

$ ssh-add ~/.ssh/id_rsa

Si desea cambiar el flujo ascendente de un repositorio existente de HTTPS a SSH, puede ejecutar el siguiente comando:

$ git remote set-url origin ssh://[email protected]:7999/projects/your_project.git

Para clonar un nuevo repositorio a través de SSH, puede ejecutar el siguiente comando:

$ git clone ssh://[email protected]:7999/projects/your_project.git

Instalación Git

Empecemos a usar algo de Git. Lo primero es lo primero: tienes que instalarlo. Puede obtenerlo de varias maneras; los dos principales son instalarlo desde la fuente o instalar un paquete existente para su plataforma.

Instalación desde la fuente

Si puede, generalmente es útil instalar Git desde la fuente, porque obtendrá la versión más reciente. Cada versión de Git tiende a incluir mejoras útiles en la interfaz de usuario, por lo que obtener la última versión suele ser la mejor ruta si se siente cómodo compilando software desde la fuente. También se da el caso de que muchas distribuciones de Linux contienen paquetes muy antiguos; por lo tanto, a menos que esté en una distribución muy actualizada o esté usando backports, la instalación desde la fuente puede ser la mejor opción.

Para instalar Git, debe tener las siguientes bibliotecas de las que depende Git: curl, zlib, openssl, expat y libiconv. Por ejemplo, si está en un sistema que tiene yum (como Fedora) o apt-get (como un sistema basado en Debian), puede usar uno de estos comandos para instalar todas las dependencias:

$ yum install curl-devel expat-devel gettext-devel \
  openssl-devel zlib-devel

$ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \
  libz-dev libssl-dev

Cuando tenga todas las dependencias necesarias, puede continuar y obtener la última instantánea del sitio web de Git:

http://git-scm.com/download Luego compila e instala:

$ tar -zxf git-1.7.2.2.tar.gz
$ cd git-1.7.2.2
$ make prefix=/usr/local all
$ sudo make prefix=/usr/local install

Una vez hecho esto, también puede obtener Git a través de Git mismo para obtener actualizaciones:

$ git clone git://git.kernel.org/pub/scm/git/git.git

Instalación en Linux

Si desea instalar Git en Linux a través de un instalador binario, generalmente puede hacerlo a través de la herramienta básica de administración de paquetes que viene con su distribución. Si estás en Fedora, puedes usar yum:

$ yum install git

O si tiene una distribución basada en Debian como Ubuntu, pruebe apt-get:

$ apt-get install git

Instalación en Mac

Hay tres formas fáciles de instalar Git en una Mac. Lo más fácil es usar el instalador gráfico de Git, que puede descargar desde la página de SourceForge.

http://sourceforge.net/projects/git-osx-installer/

Figura 1-7. Instalador Git OS X. La otra forma principal es instalar Git a través de MacPorts (http://www.macports.org). Si tiene MacPorts instalado, instale Git a través de

$ sudo port install git +svn +doc +bash_completion +gitweb

No tiene que agregar todos los extras, pero probablemente querrá incluir +svn en caso de que alguna vez tenga que usar Git con los repositorios de Subversion (vea el Capítulo 8).

Homebrew (http://brew.sh/) es otra alternativa para instalar Git. Si tiene Homebrew instalado, instale Git a través de

$ brew install git

Instalación en Windows

Instalar Git en Windows es muy fácil. El proyecto msysGit tiene uno de los procedimientos de instalación más sencillos. Simplemente descargue el archivo exe del instalador desde la página de GitHub y ejecútelo:

http://msysgit.github.io

Después de instalarlo, tiene una versión de línea de comandos (que incluye un cliente SSH que será útil más adelante) y la GUI estándar.

Nota sobre el uso de Windows: debe usar Git con el shell msysGit proporcionado (estilo Unix), que permite usar las complejas líneas de comando que se dan en este libro. Si necesita, por alguna razón, usar la consola de línea de comando / shell nativa de Windows, debe usar comillas dobles en lugar de comillas simples (para parámetros con espacios en ellos) y debe citar los parámetros que terminan con el acento circunflejo (^ ) si son los últimos en la línea, ya que es un símbolo de continuación en Windows.