Github
Tutorial de Git y Github
Install / Use
/learn @flowsta/GithubREADME
-- mode: org --
-- coding: utf-8 --
#+STARTUP: hidestars overview noindent inlineimages logdrawer shrink #+OPTIONS: H:1 num:t toc:t \n:nil @:t ::t |:t ^:nil -:t f:t *:t <:t date:nil #+OPTIONS: TeX:t LaTeX:nil skip:nil d:nil todo:t pri:nil tags:not-in-toc #+OPTIONS: author:nil email:nil creator:nil timestamp:nil #+CATEGORY: softwarelibre, periodismodatos #+TAGS: git, github, gitlab, bitbucket, repositorio #+DESCRIPTION: Git, Github y publicación web #+latex_header: \renewcommand{\contentsname}{Prueba} #+EXPORT_FILE_NAME: index #+language: es #+AUTHOR: Adolfo Antón Bravo #+EMAIL: adolflow@infotics.es #+TITLE: Git, GitHub y Publicación Web #+DATE: <2015-12-16 mié 16:00> #+SETUPFILE: https://raw.githubusercontent.com/fniessen/org-html-themes/master/org/theme-readtheorg.setup
Notas sobre git y Github:
- git
- github
- gestión de proyectos
- crear copias de proyectos
- adaptar proyectos
- participar en proyectos.
Puedes trabajar con git desde herramientas gráficas o desde la línea de comandos.
En este caso vamos a trabajar con la línea de comandos, preferiblemente en GNU/Linux.
- Instalación de git En GNU/Linux, tan solo hay que instalar =git-core=: #+BEGIN_SRC sh apt-get install git-core #+END_SRC
En Mac se puede instalar el [[https://sourceforge.net/projects/git-osx-installer/][instalador gráfico de git]] y en Windows, [[https://git-for-windows.github.io/][git for Windows]].
#+BEGIN_QUOTE Para usar git desde la terminal en Mac hay que activar las funciones de Xcode. #+END_QUOTE
Si queremos disfrutar de una terminal potente, podríamos usar [[http://cygwin.com][Cygwin]] en Windows o la Terminal en Mac.
Comprobamos que se ha instalado git con la opción =--version=
#+BEGIN_SRC sh git --version #+END_SRC
También tenemos los instaladores oficiales de [[http://www.git-scm.com][git]]:
- Mac, http://www.git-scm.com/download/mac
- Windows, http://www.git-scm.com/download/win
- GitHub
Crea una [[http://www.github.com][cuenta en GitHub]]
Si no te atreviste con el paso anterior, puedes usar estos programas de escritorio para Windows y Mac:
- Windows: http://windows.github.com y [[https://help.github.com/articles/set-up-git/#platform-windows][primeros pasos]]
- Mac OS X: http://mac.github.com y [[https://help.github.com/articles/set-up-git/#platform-mac][primeros pasos]] ** Wiki En GitHub se puede añadir el wiki como un submódulo, tal como recuerdan [[https://stackoverflow.com/questions/6941688/how-to-integrate-a-github-wiki-into-the-main-project][aquí]]:
#+BEGIN_SRC bash git submodule add git://github.com/you/proj.wiki #+END_SRC
Que podríamos enlazar con nuestro directorio preferido:
#+BEGIN_SRC bash git submodule add git://github.com/you/proj.wiki vocabulary #+END_SRC
Ahí debería haber al menos dos archivos:
- =Home.md=, donde estaría la información de portada del wiki.
- =_Sidebar-vocabulary.md=, el menú de la derecha del wiki.
- =_Footer.md=, información al pie.
*** Qué son los submódulos :PROPERTIES: :url: https://git-scm.com/book/en/v2/Git-Tools-Submodules :END: Como su propio nombre indica, son parte de un repositorio git. A efectos prácticos, funcionan como un subrepositorio, un repositorio dentro de un repositorio.
Para qué se pueden utilizar:
- Se pueden utilizar para separar código en submódulos.
- Pueden ser parte de más de un repositorio, por lo que pueden compartirse con otros proyectos/repositorios, de tal forma que cuando se actualice ese submódulo se actualizará en todos los repositorios donde está como submódulo. **** Funcionamiento :PROPERTIES: :cite: https://gist.github.com/gitaarik/8735255 :END: Cuando añades un submódulo a un repo, añades el código al repo y queda registrada la información que describe a qué commit está apuntando el submódulo. El archivo =.gitmodules= almacena la versión del submódulo cuando es añadido. **** Añadir un submódulo Se añade un submódulo de la siguiente manera:
#+begin_source Bash git submodule add git@github.com:url_a/mi-submodulo.git ruta-donde-quiero-el-submodulo #+end_source
De esta manera se pasa el código y se añade información al repositorio principal sobre el submódulo, lo que contiene el commit a donde apunta el submódulo, que será el commit de la rama por defecto. **** Obtener el código Si se crea el submódulo, las otras personas tienen que inicializar el submódulo. Primero obtienes la información con =git fech= o bien descargamos información y código con =git pull= y después se inicializan con =git submodule init=.
Si se clona un repositorio con submódulos, también se tiene que correr este comando para obtener el código del submódulo ya que no lo hace automáticamente con =git clone=. **** Actualizaciones del submódulo
Si actualizamos el submódulo, dado que es un repositorio separado, también tendremos que actualizar el repo principal ya que su último commit apunta al anterior. Para actualizar, desde el repo principal, =git add=, =git commit= y =git push=. **** Mantener actualizados los submódulos
Si otras personas hicieron cambio en el submódulo, hay que actualizar el código con =git submodule update --remote=. **** Truco
Si lanzamos =git submodule update --init=, inicializamos los submódulos.
En caso de /tener/ submódulos dentro de submódulos, añadimos =--recursive= al final de la sentencia.
Recuerda que se pueden hacer =alias= en =git=, por lo que podríamos crear uno tal que así:
#+begin_src git config --global alias.update '!git pull && git submodule update --init --recursive' #+END_SRC
De tal forma que con =git update= inicializaríamos correctamente el repositorio y el/los submódulo(s).
**** Gestión de submódulos :PROPERTIES: :cite: https://github.com/exlinc/mdlr :END: =mdlr= se declara como una herramienta de git para gestionar submódulos fácilmente.
- Llave SSH
#+BEGIN_QUOTE Si no sabes qué es SSH, sáltate esto #+END_QUOTE
Las claves SSH son una forma de identificar ordenadores de confianza sin comprometer contraseñas. Se peude generar unas claves SSH y añadir la clave pública de GitHub para que se produzca la conexión.
GitHub recomienda revisar regularmente la lista de claves SSH y revocar aquellas que no se usen, no se hayan usado o no se vayan a usar.
Puedes conectarte por ssh y activar la llave ssh para conectarte de forma autentificada automáticamente. Vayamos paso a paso.
** Comprobación de claves
Primero comprobamos que contamos con clave ssh en el equipo:
#+BEGIN_SRC sh ls -la ~/.ssh #+END_SRC
Si aparece un listado de claves, podremos saltarnos el siguiente paso. Si no, debemos generar unas claves.
** Generar claves ssh
Necesitas generar una clave ssh el equipo local desde el que te conectas:
#+BEGIN_SRC sh ssh-keygen -t rsa -b 4096 -C "correo-electronico@dominio.com" #+END_SRC
Lo cual crea una nueva clave ssh y utiliza el correo electrónico como etiqueta.
Si todo va bien, mostrará el mensaje de generación de la clave, pedirá dónde almacenarla y se puede añadir una contraseña:
#+BEGIN_EXAMPLE Generating public/private rsa key pair. Enter file in which to save the key (/home/usuarix/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/usuarix/.ssh/id_rsa. Your public key has been saved in /home/usuarix/.ssh/id_rsa.pub. The key fingerprint is: (...) #+END_EXAMPLE
=(...)= es donde aparece la clave.
Ahora que ya tenemos la clave, la pegamos en GitHub en las preferencias, en el apartado "SSH and GPG keys".
*** Copia de clave con método =pbcopy= Para seleccionar la clave, podemos emplear el método MacOSX =pbcopy=, que podemos hackear en GNU/Linux con un /alias/ a partir de =xsel=:
#+BEGIN_SRC sh alias pbcopy='xsel --clipboard --input' alias pbpaste='xsel --clipboard --output' #+END_SRC
De esta forma ya podemos utilizar =pbcopy=:
#+BEGIN_SRC sh pbcopy < ~/.ssh/id_rsa.pub #+END_SRC
Y pegamos en GitHub. A partir de ahí ya podremos conectarnos con GitHub de forma segura.
*** Copia de clave con =more= y copiar y pegar
Podemos hacerlo en dos pasos, mostrando la clave y copiándola con el ratón:
#+BEGIN_SRC sh more ~/.ssh/id_rsa.pub #+END_SRC
** Configuración local y comprobación
Ya está casi todo hecho. Ahora falta decirle a git que nos conectamos a GitHub de forma segura. Para ello, podemos comprobar que lo podemos hacer, y en el mismo paso aprobar la conexión:
#+BEGIN_SRC sh ssh -T git@github.com #+END_SRC
Nos pedirá la contraseña que hayamos puesto a la clave si lo hemos hecho, lo introducimos y listo. Si no, nos saldrá directamente el mensaje:
#+BEGIN_EXAMPLE The authenticity of host 'github.com (192.30.252.1)' can't be established. RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48. Are you sure you want to continue connecting (yes/no)? #+END_EXAMPLE
Nótese que =192.30.252.1= es una de las direcciones IP de GitHub, pero podría salir otra. Lo más importante es fijarse en el fingerprint.
Le decimos que sí y entonces GitHub nos responde:
#+BEGIN_EXAMPLE Hi usuarix! You've successfully authenticated, but GitHub does not provide shell access. #+END_EXAMPLE
Donde =usuarix= es nuestrx usuarix en GitHub. Ya está hecho.
Si nos apareciese el mensaje =access denied=, recomiendo seguir los pasos anteriores o [[https://help.github.com/articles/error-permission-denied-publickey][este artículo de GitHub]] para comprobar que lo hemos hecho bien.
- Cambiar el editor por defecto Por defecto, bash y git vienen con el editor =vi= por defecto. Para cambiarlo, tal como explican en [[https://stackoverflow.com/questions/2596805/how-do-i-make-git-use-the-editor-of-my-choice-for-commits][stackoverflow]], podemos hacerlo en una o en ambas. ** core.editor Para usar =nano= o el editor de texto CLI de nuestra elección, corremos: #+BEGIN_EXAMPLE git config --global core.editor "nano" #+END_EXAMPLE
La opción =--global= es para hacerlo en todo git. Si solo quisiéramos en este repositorio, sería sin esa opción. ** nano como editor por defecto Lo hace
Related Skills
node-connect
343.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
90.0kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
343.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
343.1kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
Security Score
Audited on Jul 4, 2025
