Github
ThirtforBep
+1803EAla34712
ls: Da el listado de diretorios
pwd: Te dice dónde andas
mkdir: Crear un directorio → mkdir "Hello Git”
git config --global //Siempre tenemos que configurar todo de manera global
git config --global [Link] "angelbep"
git config --global [Link] "labptop0520@[Link]"
git init //Donde queremos iniciar nuestro historial de versiones (creamos un repositorio
de git)
//Descargar esto
([Link]
sudo apt update
sudo apt install zsh
zsh --version
sh -c "$(curl -fsSL
[Link]
Ya cuando pongas zsh te va a mostrar en que rama andas y así
nano ~/.zshrc //Para cuando queramos cambiar el tema
ZSH_THEME="amuse" ctrl + o y enter
source ~/.zshrc
//Cambiar nombre de la rama master
git branch -m main
//Ver status de cuantas ramas y eso hay
Github 1
git status
//Agregar un archivo a los ficheros
git add [Link]
git add . //Agrega todos los archivos
//Hacer un comentario (siempre se hace un git add y luego el commit)
git commit (ya dependera cómo salir, puede ser :qw o el ctrl + o )
git commit -m "Este es mi primer commit” //Se le asocia un mensaje en corto
///////////////////
git add .
git commit -m "Mensaje del commit"
/////////////
//Para ver el historial a donde apunta el head (si esta apuntando a una pagina antes del
total de cambios, no se verá)
git log //Te dice los commits que han hecho y los autores y la hora
git log —graph
git log —graph —pretty=oneline
git log —graph —decorate —all —oneline
//Para devolver al valor que habia antes de hacer un commit (puede ser el estado que
habia antes de guardar localmente oooo a una version que tenemos entre nuestras
ramas)
git checkout (el nombre de tu archivo en especifico o el historial de version, recuerda
que el de tree es el codigo pa restaurar la que queremos)
git checkout HEAD (ubicar el punto donde estamos como el inicio desde donde
queremos iniciar)
git checkout main/master //Nos da la pagina de donde teniamos todo apuntado en el
master
git cheout tags/tag#(o su nombre)
Github 2
//Para que git te diga que cosas puedes volver a su valor original antes de hacer un
commit
git reset
//Los alias que usamos para simplificar la llamada a ciertos comandos (estos alias se
veran reflejados en nuestra carpeta .gitconfig) el .tree es el nombre que le vamos a
poner
git config --global [Link] "log --graph --decorate --all --oneline"
git tree
//Crear fichero que vamos a ignorar
touch .gitignore
//Ver lo que ha ido cambiando en nuestro codigo
git diff (y la rama que queremos comparar)
git diff //Te dice los cambios que ha habido entre el codigo ya subido al git y el que
ahorita nomas hiciste ctrl + s)
//Volver a una version de nuestro codigo y borrar todo lo que teniamos despues de ese
nuevo punto incial
git reset - - hard (id de nuestra version que queremos, sirve para atras como para
hacia adelante, nomas checa el reflog y lo vuelve nuestro head en ese momento)
//Ver absolutamente todo el historial aunque hayamos hecho el git reset - -hard
git reflog
//Taggear (marcar) todo lo avanzado en un cierto punto
git tag clase_1
//Crear una nueva rama
git branch “Nombre de nuestra nueva rama, la clonada”
//Cambiar a una rama
Github 3
git switch “nombre de la rama a la que quieres cambiar”
//Combinar los datos que queremos de la rama en la que estamos a una rama que
deseamos (puede git merge (ingresas los datos de la rama que quieres los datos)
(si hay conflictos los arreglas y luego haces el add y el commit)
//Guardar temporalmente algun avance y te deja tu rama a como estaba hasta el ultimo
commit o head
git stash //Hace el guardado parcial
git stash list //Ver los guardados temporales pendientes
git stash pop //Te vuelve a poner a como dejaste los cambios
git stash drop //borra el guardado parcial
//”Borrar” la rama
git branch -d (el nombre de la rama que queremos borrar)
Generar claves ssh
[Link]
your-ssh-connection
Github 4
//Hacemos todo esto en powershell con privilegios aumentados
PS C:\WINDOWS\system32> cd ~/.ssh
PS C:\Users\labpt\.ssh> ssh-keygen -t ed25519 -C "
labptop0520@[Link]" //Crear clave
Generating public/private ed25519 key pair.
Enter file in which to save the key (C:\Users\labpt/.ssh/id_ed25519): id_rsa
PS C:\Users\labpt\.ssh> Get-Service -Name ssh-agent | Set-Service -StartupType
Manual
PS C:\Users\labpt\.ssh> Start-Service ssh-agent
PS C:\Users\labpt\.ssh> ssh-add id_rsa
PS C:\Users\labpt\.ssh> cp \\wsl$\Ubuntu\home\angelbep\.ssh\* .
//Cambiamos a zsh
C:\Users\labpt\.ssh>wsl //Evaluamos si hay una conexxion
angelbep@MSI:/mnt/c/Users/labpt/.ssh$ zsh
$ eval "$(ssh-agent -s)"
Agent pid 21781
$ ssh -T git@[Link]
Hi ThirtforBep! You've successfully authenticated, but GitHub does not provide shell
access.
Github 5
//Emparejar con un repositorio de github
git remote add origin [Link]
//Le decimos la correspondencia (subimos los archivos a origen desde el main, que fue
lo que renombramos)
git push origin main
Github 6
//actualizar referencias remotas sin hacer ningun cambio sobre nuestra rama local
git fetch
git tree //Lo complementamos con esto, por ejemplo
git log //Lo podemos complementar con esto tambien
//Hacemos pull con merge (escogemos el mecanismo de mergeo para que no asuma
que todo esta bien)
git config [Link] false //Indicamos nuestro metodo de subir
git push --set-upstream origin main//Indicamos cual rama hara los cambios de la rama
de github con la rama de nosotros (de la main de github con la main de nosotros)
git pull origin main //Pulleamos nuestros avances
//Clonar el proyecto
git clone git@[Link]:ThirtforBep/[Link]
//Clonar un proyecto sobre mi proyecto
Creamos un fork el cual nos permite copiar todo un proyecto sobre nuestra rama y ya
desde ahi la podemos clonar para hacer modificaciones y asi
//Sincronizamos entre repositorios distintos, pero clonados
Github 7
//Ejemplo de crear una rama y configurar la conexion ssh por si llegamos a tener
problemas
~/.ssh ⌚ [Link]
$ ls
config id_ed25519 id_ed25519.pub known_hosts known_hosts.old
~/.ssh ⌚ [Link]
$ eval "$(ssh-agent -s)"
Agent pid 26142
~/.ssh ⌚ [Link] //Aquí tuve problemas con el ssh, por lo que cambiamos al
directorio ssh y creamos un archivo
$
ssh-add ~/.ssh/id_ed25519
Identity added: /home/angelbep/.ssh/id_ed25519 (labptop0520@[Link])
~/.ssh ⌚ [Link] //Agregamos la llave publica al github
$
cat ~/.ssh/id_ed25519.pub
ssh-ed25519
AAAAC3NzaC1lZDI1NTE5AAAAIDKIrJWqQjmsyBJ8kTCuBKMwL/yWEFjNMssYxIWA8Gjc
labptop0520@[Link]
~/.ssh ⌚ [Link]
$
cd /mnt/c/Users/labpt/hello-git-angelbep //Cambiamos nuevamente a donde tengo mis
archivos
/mnt/c/Users/labpt/hello-git-angelbep on mi-contribucion ⌚ [Link]
$
git remote set-url origin git@[Link]:ThirtforBep/[Link] //Nos
conectamos a git mediante ssh
/mnt/c/Users/labpt/hello-git-angelbep on mi-contribucion ⌚ [Link]
$
ssh -T git@[Link] //Corroboramos conexion
Hi ThirtforBep! You've successfully authenticated, but GitHub does not provide shell
access.
/mnt/c/Users/labpt/hello-git-angelbep on mi-contribucion ⌚ [Link]
$ git checkout -b mi-contribucion
Github 8
/mnt/c/Users/labpt/hello-git-angelbep on mi-contribucion ⌚ [Link]
$ git branch //Vemos la rama en la que estamos
/mnt/c/Users/labpt/hello-git-angelbep on mi-contribucion ⌚ [Link]
$ git add . //Agregamos los archivos actuales
/mnt/c/Users/labpt/hello-git-angelbep on mi-contribucion ⌚ [Link]
$ git commit -m "Añadí mi usuario a [Link]"
/mnt/c/Users/labpt/hello-git-angelbep on mi-contribucion ⌚ [Link]
$ git push origin mi-contribucion //Indicamos que queremos subir los cambios a la
rama origen desde mi rama
/mnt/c/Users/labpt/hello-git-angelbep on mi-contribucion ⌚ [Link]
$
git push origin mi-contribucion
En el 3:30 vemos el modo administrador del repositorio
//Descargar cambios de la rama principal a mi rama local
git pull origin main
//Subir cambios al repositorio remoto
git push origin mi-contribucion
Github 9
//Instalar git-flow (Es una metodologia para trabajar las ramas)
/bin/bash -c "$(curl -fsSL
[Link] //instalar
homebrew
/mnt/c/Users/labpt/hello-git-angelbep on main ⌚ [Link]
$ echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> ~/.zshrc
/mnt/c/Users/labpt/hello-git-angelbep on main ⌚ [Link]
$ eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
/mnt/c/Users/labpt/hello-git-angelbep on main ⌚ [Link]
$ brew install git-flow
git flow init//Creamos las ramas
Github 10
git flow feature start (nombre de la funcionalidad que vamos a hacer)
comandos raros
git cherrypic //jalar un commit completo al head
git rebase //Poner al frente una rama enfrente de otra
Github pages: Te despliega tu sistema
Github actions: Es una api que te hace los tests (hace las automatizaciones)
Github 11