4,395
edits
No edit summary |
No edit summary |
||
| Line 75: | Line 75: | ||
[[File:Eclipse php build path.png|240px]] | [[File:Eclipse php build path.png|240px]] | ||
=Obtener la última versión de los fuentes usando un acceso completo GIT= | |||
= | == Prerrequisitos == | ||
== | Debe tener una instalación funcional de Eclipse, el plugin '''EGit''' también debe estar instalado. | ||
Para instalarlo, use '''Help''' desde el menú Eclipse, seguidamente haga click en '''Install new software''' y click en '''Available software site'''. En la lista de direcciones que aparece, busque el enlace : | |||
http://download.eclipse.org/egit/updates | http://download.eclipse.org/egit/updates | ||
Seguidamente escoja instalar '''EGit'''. | |||
Debe crear antes una cuenta en GitHub (https://github.com/) y subir un certificado público RSA o DSA en su account profile. | |||
El proceso es el mismo que el explicado en la obtención de los fuentes con acceso anónimo. | |||
URL | la URL a usar para clonar GIT es la misma: | ||
<source lang="ini"> | <source lang="ini"> | ||
git@github.com:Dolibarr/dolibarr.git | git@github.com:Dolibarr/dolibarr.git | ||
</source> | </source> | ||
Tenga en cuenta que también se encuentra disponible una dirección URL HTTP, pero a veces se encuentra fuera de línea: | |||
<source lang="ini"> | <source lang="ini"> | ||
https://yourgitlogin@github.com/Dolibarr/dolibarr.git | https://yourgitlogin@github.com/Dolibarr/dolibarr.git | ||
</source> | </source> | ||
= | =Actualizar su repositorio= | ||
Para actualizar su workspace local, haga clic con el botón derecho en el proyecto de Eclipse y seleccione "Pull". | |||
Si usted realiza algunos cambios en su workspace de Eclipse, el cliente GIT realizará una fusión automática en los archivos que hayn cambiado en la referencia GIT remoto. | |||
* Si se producen conflictos, la fusión marcará todos los archivos con conflictos como "conflict" (Ver más adelante para resolver este estado). | |||
* De lo contrario, recibirá todos los archivos de la nueva versión, incluyendo todos sus cambios. | |||
= | Si ya ha comiteado algunos archivos en su repositorio local, su workspace se marcará como "Merged". | ||
Todo lo que hay que hacer es crear un commit para validar su repositorio local, incluyendo sus cambios y los cambios realizador por otros. | |||
* | |||
= Comitear y publicar sus cambios = | |||
Para ver todos los cambios realizados en su workspace y la espera de ser añadidos en Git: | |||
* Con la línea de comandos GIT: | |||
<source lang="bash"> | <source lang="bash"> | ||
git status | git status | ||
| Line 115: | Line 115: | ||
</source> | </source> | ||
Para añadir los cambios realizados en el repositorio local en el índice GIT, confirmar este índice: | |||
* | * Con Eclipse: Clic con el botón derecho del ratón en el archivo o directorio a comitear. Seleccione archivo a añadir/eliminar/actualizar en el comit. | ||
* | * Con la línea de comandos GIT: | ||
<source lang="bash"> | <source lang="bash"> | ||
git commit -a -m "Commit text" | git commit -a -m "Commit text" | ||
</source> | </source> | ||
Esto guardará y añadirá todos los cambios en su rama local. | |||
Para realizar un push al repositorio GIT del servidor, | |||
* | * Con Eclipse: hacer clic con el botón derecho en el proyecto y elegir "'''Team - Push to Upstream'''". | ||
* | * Con la línea de comandos GIT: | ||
<source lang="bash"> | <source lang="bash"> | ||
git push | git push | ||
</source> | </source> | ||
Para cancelar un comit: | |||
* | * Con la línea de comandos GIT: | ||
<source lang="bash"> | <source lang="bash"> | ||
git revert IdCommit | git revert IdCommit o git revert HEAD (para el último comit) | ||
</source> | </source> | ||
= | = Añadir un commit externo al repositorio = | ||
Algunos desarrolladores pueden trabajar y realizar commits en su repositorio GIT después de haber realizado un fork al proyecto.Si está interesado en conseguir esos cambios, puede importarlos realizando los siguientes pasos en Eclipse: | |||
* | * Primero, vaya a la vista GIT setup y haga clic con el botón derecho del ratón en"'''Remotes'''" de su Eclipse Git working space y elija "'''Create a remote...'''" | ||
* | * Indique nombre o el fork remoto que el desarrollador ha creado (en la mayoría de los casos, es el GIT login del desarrollador). Por ejemplo: "'''thedevlogin'''". Elija también "'''Configure Fetch'''". | ||
* | * Teclee la URI del respositorio GIT del desarrollador. Por ejemplo: '''git://github.com/thedevlogin/dolibarr.git'''. Añada un valor refspec value para declarar la rama que desea obtener. Por ejemplo: '''refs/heads/master:refs/remotes/thedevlogin/master'''. Clic "'''Save and Fetch'''". Se habrá añadido una nueva entrada en "Remote Tracking" haciendo posible la lectura/obtención de los commits realizados en esa rama. | ||
Ahora, ir a la línea de comandos de su repositorio GIT (en la mayoría de casos en Linux, es'''/home/sulogin/git/sudolibarr''') y teclee el comando git cherry-pick: | |||
<source lang="bash"> | <source lang="bash"> | ||
git cherry-pick -x commitid | git cherry-pick -x commitid | ||
</source> | </source> | ||
donde el commitid es el valor del commit id que desea obtener. | |||
Una vez hecho esto, vuelva a Eclipse y haga un refresh sobre el proyecto. Verá los archivos modificados aparecen con decoradores (con conflictos si hay). | |||
= | =Solucionar un conflicto= | ||
Si un archivo se ha marcado como "conflict" después de un Pull request, ábralo para editarlo. | |||
Busque el string "<<<<<<<<<<", podrá ver parte del código conflictivo entre "<<<<<<<<<" y ">>>>>>>>". Edite manualmente las líneas de código y elimine "<<<<<<<<" y ">>>>>>>". | |||
Seguidamente haga clic con el botón derecho del ratón en el archivo y seleccione "Add". | |||
Si prefiere perder completamente todos los cambios realizados por usted en todos los archivos (restaurar su workspace con el contenido del repositorio remoto), puede realizar un hard resett: | |||
* | * Con Eclipse, clic con el botón derecho del ratón sobre el nombre del proyecto y seleccione "'''Reset'''" - "'''Hard'''" - "'''Reference - HEAD'''". | ||
* | * Con la línea de comandos GIT, se puede lograr esto con el comando | ||
<source lang="bash"> | <source lang="bash"> | ||
git reset --hard HEAD | git reset --hard HEAD | ||
</source> | </source> | ||
=Tagging | =Tagging fuentes= | ||
Para añadir un tag a la versión actual: | |||
<source lang="bash"> | <source lang="bash"> | ||
git tag -m "Tag for x.y.z_YYYYMMDD" "x.y.z_YYYYMMDD" | git tag -m "Tag for x.y.z_YYYYMMDD" "x.y.z_YYYYMMDD" | ||
| Line 170: | Line 170: | ||
</source> | </source> | ||
= | =Crear una nueva rama= | ||
Este es el comando a usar para crear una nueva rams desde un repositorio clonado de desarrollo: | |||
<source lang="bash"> | <source lang="bash"> | ||
git branch x.y | git branch x.y | ||
| Line 177: | Line 177: | ||
</source> | </source> | ||
= | =Estadísticas= | ||
Para contar el número de cambios que los desarrolladores han realizado entre una versión x e y: | |||
* | * Primero, ejecute git merge-base para conocer el id del último commit común entre x e y | ||
<source lang="bash"> | <source lang="bash"> | ||
git merge-base origin/3.1 origin/develop | git merge-base origin/3.1 origin/develop | ||
</source> | </source> | ||
* | * Entonces ejecutar un git log para obtener un listado desde el último commit común al último commit | ||
<source lang="bash"> | <source lang="bash"> | ||
git log id_found_at_previous_step..HEAD | git log id_found_at_previous_step..HEAD | ||
</source> | </source> | ||
* | * Para obtener el total de líneas añadidas/eliminadas: | ||
<source lang="bash"> | <source lang="bash"> | ||
git log --ancestry-path --numstat --pretty="%H" id_found_at_previous_step..HEAD | awk 'NF==3 {plus+=$1; minus+=$2} END {printf("+%d, -%d\n", plus, minus)}' | git log --ancestry-path --numstat --pretty="%H" id_found_at_previous_step..HEAD | awk 'NF==3 {plus+=$1; minus+=$2} END {printf("+%d, -%d\n", plus, minus)}' | ||
</source> | </source> | ||
Para contar el número de cambios finales entre una versión x e y (se diferencia del recuento anterior porque en el recuento anterior, un cambio puede hacerse 2 veces en dos momentos diferentes para cambiar de forma diferente. Con el segundo método, se cuentan los cambios finales encontrados si los cambios estaban bien al primer intento): | |||
* Usar el método anterior pero usando git diff. | |||
* | |||
<source lang="bash"> | <source lang="bash"> | ||
git diff -b -M --numstat --pretty="%H" id_found_at_previous_step..HEAD | awk 'NF==3 {plus+=$1; minus+=$2} END {printf("+%d, -%d\n", plus, minus)}' | git diff -b -M --numstat --pretty="%H" id_found_at_previous_step..HEAD | awk 'NF==3 {plus+=$1; minus+=$2} END {printf("+%d, -%d\n", plus, minus)}' | ||
| Line 200: | Line 199: | ||
Más información del uso de GIT disponible en [http://wiki.eclipse.org/EGit/User_Guide here]. | |||