GIT: заметки

Бывает необходимость вытащить из гита сведения о номере коммита или ветке, чтобы включить их в информацию о программе/прошивке/скрипте. Для Bash это выглядит так:

COMMIT=`git show --pretty=oneline|head -c 40`
BRANCH=`git branch|grep '*'|awk '{print $2}'`

git: merge —squash

Чтобы при объединении веток получить только один коммит из вливаемой ветки, а не всю историю, нужно использовать параметр --squash:

git merge --squash branch -m "super commit"

Ссылки:

UPD: Как показала практика, с master’ом так лучше не делать, т.к. в этом случае другие ветки сообщают примерно следующее:

# Your branch and 'origin/master' have diverged,
# and have 336 and 1 different commit(s) each, respectively.

Т. е. пути вашей ветки и мастера разошлись. Учитывая, что в большинстве случаев разрабатываемые ветки в итоге вливаются обратно в master, это может привести к неприятным последствиям. К каким точно — не знаю, но для себя решил не использовать опцию --squash.

GIT: удалить удалённую ветку

Долго не мог понять, почему git -r -d branchname не приводит к желаемому результату. Оказалось, надо делать так: git push origin :branchname

Вот я сейчас как почищу удалённую сторону 🙂

Ссылки: