Esta guía explica cómo abrir PRs para enviar cualquier tipo de correciones (C++, SQL, etc...).
Si sólo envías correcciones de DB, deberías probar nuestra nueva simplificada manera de abrir una PR que contenga código SQL.
Necesitas estar registrado en github.com. Si aun no tienes una cuenta, crea una.
Abre el repositorio de AzerothCore Y crea un fork de este haciendo click en el botón "Fork" de arriba a la derecha:

Una vez que tu fork esté listo, verás un nuevo repositorio mostrando YourUsername/azerothcore-wotlk.
Haz click en el botón "Clone or download" (a la derecha) y copia la dirección https de tu fork:

Ahora abre la terminal (si estas en Windows, usa terminal git bash)
y escribe git clone seguido de la dirección de tu fork que acabas de copiar:

git clone https://github.com/YourUsername/azerothcore-wotlk.git
Espera a que la descarga termine y luego accede al directorio de azerothcore-wotlk:
cd azerothcore-wotlk

Abre tu navegador y navega hasta tu fork en GitHub (cambia YourUsername con tu usuario actual de GitHub):
https://github.com/YourUsername/azerothcore-wotlk
Si tu master branch no está actualizado a la última versión de AzerothCore, verás algo como:
This branch is XX commits behind azerothcore:master

para actualizarlo, haz click en Fetch upstream y luego Fetch and merge.
Como resultado, el master branch de tu fork debería directorio:
This branch is even with azerothcore:master

En el anterior paso acabas de actualizar tu fork remoto, pero también tienes que sincronizarlo con tu clon local.
Abre tu terminal dentro del directorio azerothcore-wotlk y ejecuta:
git checkout master; git pull
IMPORTANTE: nunca cometas cambios en tu branch master , esto hará ver tu fork muy desordenado.
Cuando estés creando un nuevo branch, git creará una copia de tu branch actual.
Siempre asegurate de que estas en master branch antes de crear un nuevo branch escribiendo:
git checkout master
Crea un nuevo branch dandole un nombre que sea diferente que ningun branch ya existente.
Puedes darle cualquier nombre que quieras (substituye "xxx" con lo que sea que estas corrigiendo):
git checkout -b fix-issue-xxxx

Si no has hecho ningún cambio al C++, puedes saltar este paso. De lo contrario ¡Abre tu editor y hazlos ahora! Te esperaré...
En esta guía vamos a asumir que has modificado el archivo instance_deadmines.cpp
Ahora añade tu archivo(s) para que sean cometidos:
git add src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp

Si has modificado mas archivos, solo añadelos usando git add path/to/file
Puedes usar el comando git status para comprobar que archivos han sido seleccionados para ser cometidos:

Si no has hecho ningún cambio SQL, puedes saltar este paso. De lo contrario, ejecuta lo siguiente:
./data/sql/updates/pending_db_world/create_sql.sh
Esto generará un nuevo archivo ubicado en data/sql/updates/pending_db_world
teniendo un nombre único como rev_XXXXXXXXXXXX.sql

Abrelo con un editor de texto. Te darás cuenta de que contiene código SQL como:
INSERT INTO `version_db_world` (`sql_rev`) VALUES ('XXXXXXXXXXXX');
NO elimines esta linea. Añade tu código SQL debajo y guardalo.
Ahora añade este archivo para que sea cometido usando el comando git add path/to/file:
git add data/sql/updates/pending_db_world/rev_XXXXXXXXXXXX.sql
(obviamente remplaza rev_XXXXXXXXXXXX.sql con el verdadero nombre del archivo)

Primero antes que todo asegurate de usar la plantilla de commit AC (esto debería ser necesario solo una vez):
git config --local commit.template ".git_commit_template.txt"
Cuando escribas tu mensage de commit, este usará el editor de texto por defecto Vim que es bastante complicado de manipular. Sin embargo puedes mantenerlo mas simple usando el editor Nano . Aquí está como proceder, escribe:
git config --global core.editor "nano"
Luego comete tus cambios escribiendo:
git commit
Se te pedirá que especifique un mensaje de confirmación apropiado. Por favor, siga las pautas de formato aquí (= cada línea que empieza por un # que será ignorado en el mensaje de confirmación), y puede referirse a una confirmación como esto como un ejemplo.
Si estas usando Nano, pressiona [ctrl]+[x] y escribe yes para guardar y salir (los otros comandos estan escritos abajo de la interfaz en Nano, y pueden ser encontrados facilmente en la net o escribiendo man nano en la terminal).
Consulta las pautas para mensajes de commit para ver los tipos, ámbitos y ejemplos aceptados.
Verifica que estás satisfecho usando git show. Y sal usando [q]. Si no estas satisfecho, puedes hacer un recommit al último commit local escribiendo git commit --amend.
Ahora es el momento de hacer un push remotamente.
Si usas el comando git push por primera vez en este branch,
git te pedirá que especifiques a que branch remoto quieres hacer el push.
Así que deberías ejecutar:
git push --set-upstream origin fix-issue-xxxx
(Por supuesto remplaza fix-issue-xxxx con el nombre de tu branch)

Vuelve al repositorio principal AzerothCore, te darás cuenta de que GitHub es lo suficientemente listo para darse cuenta de que est´´as a punto de abrir una PR y muestra este recuadro amarillo claro:

Haz click en el botón verde de "Compare & pull request" (ubicado a la derecha).
Ahora llena la plantilla de la PR siguiendo las instrucciones que aparecerán en tu pantalla, no te olvides de añadir las instrucciones de testing para que la gente pueda probar tu PR y pueda ser unida:

Tambien es una buena practica de comprobar la ventana de "File changes" para ver que todo está a tu gusto:

NOTA: No respondemos bien con los leechers! Si tu fix viene de otra organizacion o persona deberías SIEMPRE dar credito al autor original y el commit.
Eso es todo!
Solo edita/añade los archivos que quieras, git add , luego haz el commit y el push otra vez.
Si refrescas la pagna de tu PR verás los cambios.
Solo repite el procedimiento empezando desde el paso 3.
Se cuidadoso creando un nuevo branch: debes estar en el master branch primero (escribe git checkout master).
Si nunca has actualizado tu fork antes, escribe:
git remote add upstream https://github.com/azerothcore/azerothcore-wotlk.git
Luego sigue estos pasos:
git checkout mastergit fetch upstreamgit merge upstream/mastergit push origin masterY ya has actualizado tu fork :)
Tienes que actualizar el master branch de tu fork primero (mirar arriba).
Luego solo git checkout your-branch y git merge master.
Esto es un proyecto de codigo abierto y la gente trabaja en su tiempo libre, así que no podemos estimarlo.
Lo que si podemos recomendar es: escribe instrucciones claras para testear tu PR, asi sera más fácil para todos de testearlo.
Si tus instrucciones no son claras o inexistentes, solo los usuarios avanzados seran capaces de testear tu PR y tardara mucho más tiempo.
https://github.com/robbyrussell/oh-my-zsh
Pero cualquier terminal de linux/mac esta bien también Si tienes tan mala suerte de estar en Windows, usa git bash.
Puedes clonar tu propio fork usando SSH en vez de HTTPS y luego sigue esta guía to set the SSH keys.
De esta manera puedes usar git push sin tener que repetir tu contraseña.