only change version to my branch name, adding "dev-" to the branch. add repository url (fork)
"repositories":
[
{
"type": "vcs",
"url": "http://github.com/yourname/packageName"
}
],
"require": {
"owner/packageName": "dev-my-bugfix"
},
(experimental command)
git log --no-merges --author="Pattern" --name-only --pretty=format:"" | sort -u
git commit -am “(message)”
Agrega todos los cambios y commitea
git revert <commit>
Nuevo commit que revierte cambios de [commit] y lo aplica al branch
git reset <file>
Saca el archivo del staging area. No borra los cambios.
git commit --ammend
Al ultimo commit le agrega los staged changes, como si hubieras agregado todo junto.
git reset <commit>
[ojo] Deshaces todos los commits despues de [commit]. Preserva los cambios locales.
git reset --hard <commit>
[ojo] Deshace toda la historia y cambios y vuelve al [commit] especificado.
git stash
Guarda cambios
git stash pop
Aplica cambios del ultimo stash y dropea el stash. (a diferencia de apply que no lo dropea)
git stash apply (stash id)
Aplica cambios del stash
git stash list
Lista stashes
git stash drop
Borra el ultimo stash
git config --global user.name <name>
git config --global user.email <email>
Setea el autor de los commits
git pull --rebase
Se le setea que haga un rebase para integrar los branches. Por default el pull hace merge.
git fetch --all
git pull --all
Actualizamos todos los branches
Si el default del pull es rebase, entonces solo pararse en el branch actual y hacer:
git pull origin master
Para continuar el rebase
git rebase --continue
Abortar
git rebase --abort
git push <remote> --force
[ojo] Hace un push sobre-escribiendo cambios. Puede haber perdida de cambios.
git cherry-pick <commit-hash>
Toma un commit y lo aplica al branch actual (a diferencia de merge/rebase que lo hace con varios commits) Un caso de uso sería EJ: hice un fix en el branch feature-1 (en medio de otros commits), y necesito aplicarlo a master.
git cherry-pick -x <commit-hash>
Idem. Pero genera un commit message estandarizado. De esta forma es mas facil evitar conflictos.
# --all will fetch all the remotes.
# --tags will fetch all tags as well
git fetch --all --tags --prune
git checkout tags/<tag_name> -b <branch_name>
ver mas acá
https://sandofsky.com/images/fast_forward.pdf
- salir con branch del ultimo tag
- crear release
- mergear cambios de QA a PROD
- crear release
- chequear el commit del release nuevo y el anterior. Ver en https://github.com/demiansc/fiter-web/network que cambios implican (hay entre esos 2 commits)
git reset head~1 --soft
Corre el head N commits anteriores (depende el numero despues del ~), local deja los cambios y se pueden stashear. https://www.atlassian.com/git/tutorials/undoing-changes/git-reset
IMPORTANT: use git reset on local. if it's public use revert
The point is, make sure that you’re using git reset on a local experiment that went wrong—not on published changes. If you need to fix a public commit, the git revert command was designed specifically for this purpose.
Si el branch se commiteo a branch, se puede volver para atras con git reset head~1 --soft
(o la cantidad que fueran)
Crear un nuevo branch desde MASTER, comparar el branch con el que esta roto (con cosas de QA) y ver que archivos salvar. (los que correspondan al branch, y omitir cosas de QA). Copiarlas a mano. Archivo x archivo
git show-branch | grep '*' | grep -v "$(git rev-parse --abbrev-ref HEAD)" | head -n1 | sed 's/.*\[\(.*\)\].*/\1/' | sed 's/[\^~].*//'
https://stackoverflow.com/questions/3161204/find-the-parent-branch-of-a-git-branch
git log --graph --decorate
curl -u "$username:$token" https://api.github.com/user/repos -d '{"name":"'$repo_name'"}'