- Este documento se basa en “Happy Git with R” de Jenny Bryan, los STAT 545 TAs, Jim Hester
git commit -m "Mensaje que diga que hice"
git commit -m "Mensaje que diga que hice" git commit --amend --no-edit
git commit --amend --m "ahora que ya terminé puedo dejar algo más completo" git push
git reset --hard
git reset --hard HEAD git pull
git push --force
$ git push To https://github.com/YOU/REPO.git ! [rejected] master -> master (fetch first) error: failed to push some refs to 'https://github.com/YOU/REPO.git' hint: Updates were rejected because the remote contains work that you do hint: not have locally. This is usually caused by another repository pushing hint: to the same ref. You may want to first integrate the remote changes hint: (e.g., 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details.
-Esto quiere decir que el repositorio central y lo que tenemos local han divergido.
-Solución: hacer PULL a local y lidiar con los conflictos
-Cómo evitar que estemos pasando por este tipo de situaciones:
No trabajar offline demasiado tiempo y hacer commit y PUSH seguido.
Hacer PULL de forma continua para evitar divergir. Asà si algo divergió el merge será menos doloroso.
Trabajo en equipo, comunicación en equipo. Si sabemos qué hacen los demás es más fácil evitar conflictos.
Uso de branches, organizar el progreso de nuestro trabajo en equipo en branches hará menos doloroso hacer integración con otras versiones.
Inevitable: nos rechazan un PUSH asà que debemos hacer PULL
Nuestra historia local:
A–B–C
A–B– Cambios sin commit
A–B–D
-Escenario 1: PULL feliz
git pull
A–B–C–(uncommitted changes)
$ git pull remote: Enumerating objects: 5, done. remote: Counting objects: 100% (5/5), done. remote: Compressing objects: 100% (2/2), done. remote: Total 3 (delta 1), reused 1 (delta 0), pack-reused 0 Unpacking objects: 100% (3/3), done. From github.com:jennybc/ethel db046b4..2d33a6f master -> origin/master Updating db046b4..2d33a6f error: Your local changes to the following files would be overwritten by merge: foo.R Please commit your changes or stash them before you merge. Aborting
$ git stash save Saved working directory and index state WIP on master: db046b4 Merge branch 'master'of github.com:jennybc/ethel $ git pull Updating db046b4..2d33a6f Fast-forward foo.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) $ git stash pop Auto-merging foo.R On branch master Your branch is up-to-date with 'origin/master'. Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: foo.R no changes added to commit
git stash pop Auto-merging foo.R CONFLICT (content): Merge conflict in foo.R
<<<<<<< HEAD:index.html <div id="footer">contact : email.support@github.com</div> ======= <div id="footer"> please contact us at support@github.com </div> >>>>>>> issue-5:index.html
$ git reset $ git reset --mixed Unstaged changes after reset: M foo.R
$ git stash drop Dropped refs/stash@{0} (7928db50288e9b4d934803b6b451a000fd7242ed)
-El mejor escenario es que el merge es fácil por que no hay conflictos
$ git pull <Se habre un editor de texto para que podamos añadir un mensaje al Merge> Merge made by the 'recursive' strategy. README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
$ git pull Auto-merging foo.R CONFLICT (content): Merge conflict in foo.R Automatic merge failed; fix conflicts and then commit the result.
$ git add foo.R $ git commit
$ git pull --rebase First, rewinding head to replay your work on top of it... Applying: Take max
$ git rebase --abort
Vayan a GitHub y creen en repositorio “toxico”
Creen un README
Clonen este repositorio a sus computadoras
Editen el README en su computadora
Ahora editen el READM en el GitHub
Traten de hacer pull, qué pasó?
Cómo lo arreglamos?
Y si nada funciona pues volvemos a instalar el repo