Actividad foro

Noticia

Git es sistema de control de versiones distribuido que está siendo muy demandado últimamente por el mercado laboral.

A lo largo de mi carrera profesional he trabajado con tres sistemas de control de versiones:

  • SVN o Apache Subversion
  • ClearCase
  • Git

Creo que Git gana por goleada a los otros dos.

Como llevaba muchos años sin tocar Git, he tenido que refrescar conceptos hace unos meses y creo que puede ser muy útil que deje por aquí todos los recursos que encontré y me fueron útiles.



Con esto terminaríamos todos los recursos útiles que he utilizado/encontrado, pero aquí dejo un par de bolas extras que nunca están de más.

  • Conventional Commits

  • Es un convenio para redactar mensajes de commits de una manera lógica y ordenada para todos.
    Muy útil si no sabes muy bien qué formato quieres en tus commits.

  • Configuración de tu .gitconfig

  • [user]
     name = [nombre] ([usuario])
     email = [dirección de correo]
    [alias]
     lg = log --graph --branches=local/ HEAD master --oneline
     lg1 = log --graph --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white black)%s%C(reset) %C(bold cyan)-- %an%C(reset)%C(bold yellow)%d%C(reset)' --abbrev-commit --date=relative --branches=local/
     lg2 = log --graph --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white black)%s%C(reset) %C(bold cyan)-- %an%C(reset)%C(bold yellow)%d%C(reset)' --abbrev-commit --date=relative --branches=local/ HEAD master
     lg3 = log --graph --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white black)%s%C(reset) %C(bold cyan)-- %an%C(reset)%C(bold yellow)%d%C(reset)' --abbrev-commit --date=relative --all
     backup = "!f() { git branch $(date \"+backup/%Y/%m/%d/%H%M%S\") \"$@\"; }; f"
     st = status
     co = checkout
     draft = !git push origin HEAD:refs/drafts/master
     devdraft =!git push origin HEAD:refs/for/dev%draft
     pushfor =!git push origin HEAD:refs/for/master
     pushfordev =!git push origin HEAD:refs/for/dev
     private =!git push origin HEAD:refs/for/master%private
     wip =!git push origin HEAD:refs/for/master%wip
     ready =!git push origin HEAD:refs/for/master%ready
     pushprestaging =!git push origin HEAD:refs/for/prestaging_dual_mode
     ps = !git push origin HEAD:refs/for/$(git rev-parse --abbrev-ref --symbolic-full-name @{u} | sed "s#^origin/##")
     psdraft = !git push origin HEAD:refs/drafts/$(git rev-parse --abbrev-ref --symbolic-full-name @{u} | sed "s#^origin/##")
     pswip = !git push origin HEAD:refs/for/$(git rev-parse --abbrev-ref --symbolic-full-name @{u} | sed "s#^origin/##")%wip
     psready = !git push origin HEAD:refs/for/$(git rev-parse --abbrev-ref --symbolic-full-name @{u} | sed "s#^origin/##")%ready
     psprivate = !git push origin HEAD:refs/for/$(git rev-parse --abbrev-ref --symbolic-full-name @{u} | sed "s#^origin/##")%private
     pspublic = !git push origin HEAD:refs/for/$(git rev-parse --abbrev-ref --symbolic-full-name @{u} | sed "s#^origin/##")%remove-private
    [core]
     editor = vim
     excludesFile = ~/.gitglobalignore
    [commit]
     template = /home/[usuario]/.git_commit_msg_template


  • Configuración de tu .git_commit_msg_template

  • En este archivo escribirás el template que se usará en todos tus commits, por ejemplo:
    < type >[ optional scope ]: < description >
    #SUBJECT: ^^^ update subject in the first line |MARK-50
    # Try not to exceed 50 characters
    # FORMAT: [optional scope]:
    # Follow Conventional Commits: https://www.conventionalcommits.org/en/


  • Configuración de tu .gitglobalignore

  • En este archivo configurarás todos los ignores a nivel global que quieras que tenga Git, por ejemplo:
    # Visual Studio Code configuration files
    .vscode/


Y esto es todo lo que os puedo dejar referente a Git.

¡Espero que os haya sido útil!

Noticias