Git push to remote without creating local branch

Little extremely handy trick for Git.
If you need to modify something quickly in some(-body’s) branch, e.g. in in open PR on GitHub, you don’t need to usually create your local branch mirroring the remote one, right?
Instead, you just checkout into remote branch:

git checkout origin/branch-name

, do you fixes/changes, commit them and now, the tricky thing, how do you push?
As simple as:

git push origin HEAD:refs/heads/branch-name

You don’t have traces in your local branches, and you pushed your modifications.
Enjoy!

How to specify custom ssh key while git clone from github

If you need to provide some custom ssh key while cloning your repository from github (or pulling, whatsoever), run this command:


ssh-agent $(eval `ssh-agent -s`; ssh-add ~/.ssh/{your-custom-keyfile}; git clone git@github.com:{username}/{repo-name}.git .)

Please note, you should replace `{strings}` with plain string values!

Отменить git push

Бывает такое, что вы сделали случайный коммит и запушили в общий репозиторий то, что не хотелось бы, скажем — какие-то важные данные (пароль к какому-нибудь сервису и т.п.)
Конечно, пока никто не заметил, всё еще можно отменить!
Для этого необходимо использовать команду

git push -f {remote_name} HEAD^:{branchName}

Таким образом можно откатиться не только на один шаг (^), но на любое количество: HEAD^^ (HEAD~2, HEAD~n).
Повторно можно «залить» уже изменения с учетом необходимых исправлений. Таким образом вы перепишете историю!