Ако сте виртуозен git-аджия с умения на овчар, като мен, и решите да commit-нете в грешния бранч можете лесно да оправите кашата просто като направите (в бранча, където сте commit-нали по погрешка):

git reset HEAD~1

където ~1 е броя на commit-ите, които сте направили в грешния бранч. Сега при git status ще си видите файловете, които можете да сложите в правилния бранч.

А ако по някава причина искате да се върнете към стар commit лесно можете да се върнете към кой да е с:

git checkout <COMMIT-ID>

Edit – а ако ви се наложи да си изтриете всички локални бранчове това лесно може да стане със следните стъпки:

  • Списък с всички бранчове, които ще бъдат изтрити локално:
git for-each-ref --format '%(refname:short)' refs/heads | grep -v master

Или направо да изтриете списъка с бранчове:

git for-each-ref --format '%(refname:short)' refs/heads | grep -v master | xargs git branch -D


Edit – 23.01.2022:

Ако искате да изтриете всички локални бранчове, които вече не използвате (например са изтрити от remote-а):

git remote prune origin

Edit – 19.12.2022

Ако работите дълго време във ваш бранч и трябва да вземете latest от друг бранч (в моя случай master):

git fetch
git rebase origin/master

Edit – 22.03.2023

Използвате bitbucket и искате да се възползвате от автоматичната интеграция с тикети? Тогава трябва да добавите ID-то на тикета в commit message-a (или името на бранча). Но в бързината сте забравили да го направите? Или сте допуснали някакво тъпо typo? Няма проблем. Ако е последния commit можете да го направите с:

git commit --amend

Edit – 05.03.2025

Искате да push-нете всичко, което сте добавили в git add, но искате да видите кои файлове ще бъдат афектирани? Няма проблем, просто направете:

git diff --name-only origin/docker..docker

Където бранчът ви се казва, очевидно – docker.

Има и друга харабия в която ще видите и кои файлове са променени и кои – нови:

git diff --name-status origin/docker..docker

Edit – 13.03.2025

По горния пример, но не само имената, но и промените, които искате да видите след последния commit? Лесно:

git diff HEAD -- nameofthecrappyfile.sh

Искате графика на бранчовете си в конзолата? Няма проблем:

git log --graph --oneline --all

Искате да видите последните commits, но не искате да са с pager view (подобно на less командата)? Това е удобно ако искате да имате output-а в конзолата директно (например да paste-вате директно sha commits и подобни):

git log | cat

Та тъй.