Category Archives: Version control

Gitlab-ci: build go app with docker as a docker image

Preparations [TO BE UPDATED LATER] My gitlab-ci.yml

My Dockerfile

Pulling from your private registry Create deploy token as described here. After that, you can do this:

Useful links: https://dev.to/hypnoglow/how-to-make-friends-with-golang-docker-and-gitlab-ci-4bil https://docs.gitlab.com/ee/ci/docker/using_docker_build.html https://medium.com/@tonistiigi/advanced-multi-stage-build-patterns-6f741b852fae https://docs.gitlab.com/ee/ci/yaml/ (full description of gitlab-ci.yml) https://about.gitlab.com/blog/2017/11/27/go-tools-and-gitlab-how-to-do-continuous-integration-like-a-boss/ https://gitlab.com/hypnoglow/example-go-docker-gitlab/blob/master/.gitlab-ci.yml Somewhat useful: https://blog.lwolf.org/post/how-to-build-tiny-golang-docker-images-with-gitlab-ci/ https://angristan.xyz/build-push-docker-images-gitlab-ci/ https://docs.gitlab.com/ee/user/packages/container_registry/#use-images-from-gitlab-container-registry https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-centos-7 (it says to do sudo usermod -aG docker …

Read more

Count lines in git repository

https://stackoverflow.com/questions/4822471/count-number-of-lines-in-a-git-repository

Как смигрировать репозиторий в новый remote

git.migrate:

Поиск в git по изменённому контенту

Например — git log -SaddedVariableName

Git-subtree для деплоя сайта на github-pages

Возьмём для примера проект https://github.com/bullgare/lzd_cllinics. Сборка для деплоя расположена в директории deploy/, и эта директория находится под контролем версий. Чтобы статический сайт был доступен по адресу http://bullgare.github.io/lzd_cllinics/, нужно содержимое этой директории запушить в отдельную ветку gh-pages. Проще всего сделать это так:

Эта команда сделает push закоммиченной директории deployв ветку gh-pages, что нам и нужно. …

Read more

Git: несколько разных ключей для одного хоста на примере bitbucket.org

Всё очень просто, достаточно прописать в ssh-конфиге алиасы:

И затем поправить путь к репозиторию гита:

https://confluence.atlassian.com/bitbucket/configure-multiple-ssh-identities-for-gitbash-mac-osx-linux-271943168.html

Настройка гита для пулла из одного репозитория и пуша в другой

Можно настроить два разных remote, как описано здесь — https://blog.bullgare.com/2014/11/gitlab-flow/. Но если нужно исключительно делать fetch из одного репозитория, а push — только во второй, то лучше сделать так:

Посмотреть текущие параметры репозиториев можно так:

Обсуждение — http://stackoverflow.com/a/3195446/801426

Github Flow

По сравнению с git flow всё проще. Создаётся fork, разработка фичи ведётся в отдельной ветке. Потом создаётся pull request (merge request для gitlab), опционально назначаются ответственные за merge, в процессе обсуждений может продолжаться работа в ветке (изменения будут автоматически добавлены к request). После одобрения ветка мёржится в мастер/главную ветку https://guides.github.com/introduction/flow/index.html

Github: подготовка к pull-request

https://help.github.com/articles/fork-a-repo — как создать fork. Тут всё просто — в дополнение к очевидным вещам нужно добавить ещё один источник:

https://help.github.com/articles/syncing-a-fork — как продолжать обновлять из оригинального репозитория. Тут всё тоже не очень сложно:

Если ветка уже создана, то

Чтобы поменять (если нужно) url до origin:

https://blog.bullgare.com/2014/04/git-%D0%BF%D0%B5%D1%80%D0%B5%D0%BB%D0%B8%D1%82%D1%8C-%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9-%D1%80%D0%B5%D0%BF%D0%BE%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%B9-%D0%B2-%D0%BD%D0%BE%D0%B2/

Git reset

Все виды команды git reset. Удалить всё лишнее, включая незакоммиченные изменения  

    Откатить последний коммит и вернуть файлы в незакоммченное состояние (т.е. изменения станут незакоммиченными, но готовыми для коммита)  

    Откатить последний коммит и убрать файлы из гита (т.е. нужно будет сначала сделать git add .)  

  …

Read more