Бывает необходимость вытащить из гита сведения о номере коммита или ветке, чтобы включить их в информацию о программе/прошивке/скрипте. Для Bash это выглядит так:
COMMIT=`git show --pretty=oneline|head -c 40`
BRANCH=`git branch|grep '*'|awk '{print $2}'`
Метка: git
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: push tags
Чтобы отправить на сервер все сделанные изменения вместе с тэгами нужно добавить параметр —tags к команде push:
git push origin master --tags
GIT: удалить удалённую ветку
Долго не мог понять, почему git -r -d branchname не приводит к желаемому результату. Оказалось, надо делать так: git push origin :branchname
Вот я сейчас как почищу удалённую сторону 🙂
Ссылки: