Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Поднимайтесь как можно выше по дереву, собирайте цветы и дарите их близким.
Вас ждут уникальные награды и 22 выгодных промокода!

Пикаджамп

Аркады, Казуальные, На ловкость

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

Git + IT

С этим тегом используют

Программирование IT юмор Github Программист Юмор Разработка Работа Картинка с текстом Все
42 поста сначала свежее
64
ChooChooLoco
ChooChooLoco
2 года назад
GNU/Linux

Git: извлечение первого и последнего комита по автору⁠⁠

В силу определённых обстоятельств – периодически стал возникать вопрос, в каких временных рамках я занимался тем или иным проектом. И готового ответа на него у меня не было – как-то не приходило в голову фиксировать подобную информацию.

Git: извлечение первого и последнего комита по автору Кросспостинг, Git, IT, Командная оболочка bash, Linux

Но есть же git – ведь он поможет? Ведь поможет, да?

Git поможет!

Возникла тривиальная идея – вытащить эту информацию из гит-лога. Первый и последний коммиты – плюс-минус дадут требуемые рамки. Достаточно найти все коммиты определённого автора (в данном случае – себя) и взять первый+последний.

Git alias для поиска по автору

Чтобы не запоминать (или не искать в истории) довольно длинную команду – её удобно запихать в пользовательский alias (именно гита, не оболочки). Например – в ~/.gitconfig прописать (в секции [alias]):

Git: извлечение первого и последнего комита по автору Кросспостинг, Git, IT, Командная оболочка bash, Linux

В частном случае – это уже работает достаточно удобно и выглядит примерно так:

user@host:~/single-repo$ git first-last-by-author dmitry f887e8aa55 Dmitry 2022-06-26

6f7a97ded7 Dmitry 2021-04-08

Когда репозиторий для поиска – один. Или парочка. Или… Нет, когда их парочка сотен – становится грустно. Идея явно требует развития!

One Function to find them all

Для решения задачи поиска по набору репозиториев – пришлось воспользоваться функциями оболочки. Они у меня сложены в отдельном файле ~/.config/bash/bash_functions.

На базе команды для обновления репозиториев и приведённого выше гит-алиаса для поиска по автору – сделал такую вот bash-функцию:

Git: извлечение первого и последнего комита по автору Кросспостинг, Git, IT, Командная оболочка bash, Linux

Теперь поиск работает и в общем случае (в каталоге multi-repo лежит куча git-репозиториев):

user@host:~/multi-repo$ git-first-last-commit-by-author dmitry

8f1d4ae Dmitry 2022-08-16

83a8f89c Dmitry 2023-02-15

Видно, что здесь порядок сортировки по датам – прямой. Мне так удобней, но всегда можно использовать ключ --reverse для sort внутри git-first-last-commit-by-author().

Показать полностью 2
[моё] Кросспостинг Git IT Командная оболочка bash Linux
1
14
nekko
nekko
2 года назад
ДЕВОПСИНА

Страшный сон релиз-менеджера⁠⁠

Страшный сон релиз-менеджера IT юмор, IT, Git, Репозиторий, Бранч, Релиз, Программист, Программирование

IT Мемная

IT юмор IT Git Репозиторий Бранч Релиз Программист Программирование
6
14
nekko
nekko
2 года назад
ДЕВОПСИНА

GIT — это просто⁠⁠

Источник айти мемов

Git Программист IT юмор IT Видео
5
22
ChooChooLoco
ChooChooLoco
2 года назад
Лига программистов

GitLab: склонировать список репозиториев⁠⁠

Решил слегка “причесать” и обобщить свой опыт по этому вопросу. Чтобы удобней было пользоваться, как этакой краткой инструкцией, а не искать разрозненные ответы на SO и т.п.

Задача проста – сделать удобно.

  1. Взять GitLab (много где используется, как self-hosted) и выкачать с него все репозитории проекта. Чтобы можно было локально работать с ними, не загружая каждый отдельно.

  2. Обновлять эти репозитории одной командой

Загрузка списка репозиториев с GitLab

Тут всё несложно – надо получить сам список и по нему всё скачать. Удобнее это делать с использованием ssh ключа (добавляется в GitLab через веб-интерфейс). Но можно и git credentials включить. Сам список достаточно просто в браузере открыть и сохранить projects.json (название по умолчанию).

  • Список репозиториев: https://your-gitlab-host/api/v4/projects?per_page=1000

  • Или список для группы проектов: https://your-gitlab-host/api/v4/groups/{group-id}/projects?per_page=1000

group-id можно тоже через веб-интерфейс посмотреть, примерно так:

GitLab: склонировать список репозиториев IT, Кросспостинг, Git, Gitlab
  • Выкачать (в текущий каталог) репозитории по списку из файла: jq -r '.[].ssh_url_to_repo' < /path/to/projects.json | xargs -n1 git clone. Можно аналоги утилиты jq использовать, мне она привычней.

  • Если авторизация по ssh-ключу не настроена – придется из json вместо поля ssh_url_to_repo извлекать поле http_url_to_repo. Можно хранить логин/пароль для GitLab в ~/.git-credentials (там они лежат в открытом виде!).

Первая часть на этом закончена. На очереди – обновление репозиториев.

Обновление списка репозиториев

Здесь всё ещё проще – достаточно одной команды. Перейти в каталог со склонированными репозиториями и выполнить:

find . -type d -name '.git' \

| xargs -n1 -- sh -c \

'cd "${0}/.." && echo \

&& basename -sa $(git rev-parse --show-toplevel) \

&& git pull --all'

Найдёт все каталоги с директорией .git внутри (а это и есть репозитории) и обновит их через git pull --all. Соответственно, каталоги, не являющиеся репозиториями, будут проигнорированы.

Показать полностью 1
[моё] IT Кросспостинг Git Gitlab
9
7
ChooChooLoco
ChooChooLoco
2 года назад

Git config с разделением по проектам⁠⁠

Возникла потребность настраивать по-разному конфиги гита для разных проектов (email контактный поменять, хотя бы, или хук на прогон тестов повесить).

Ну и понятно, что как-то эти конфиги подкладывать туда-сюда – не слишком увлекательно. К счастью, в свежих версиях гита – есть инклюды. В том числе – по условию – includeIf. Вот ими и стоит воспользоваться.

Основной конфиг git

Общая концепция такова – в основном конфиге ~/.gitconfig – перечислить (под условиями) конфиги “зависимые”, а все специфичные настройки прописать уже в них. Ничего экстраординарного, в общем.

Примерно вот так у меня это выглядит, по условию включается конфиг из файла gitconfig-project-1:

[user]

name = Dmitry

email = dimio@dimio.org

[includeIf "gitdir:~/project-1/repos/"]

path = ~/.config/git/gitconfig-project-1

Важный момент – директорию после gitdir: нужно указывать без отделения пробелом.

Вложенный конфиг git

А вот так – выглядит сам файл ~/.config/git/gitconfig-project-1

[user]

email = dmitry@dimio.org

[core]

hooksPath = ~/.config/git/hooks/

autocrlf = input

sshCommand = "ssh -F ${HOME}/.ssh/config-project-1"

Тут уже как раз и переопределены email, хуки (для этого проекта активирован автопрогон тестов в pre-push хуке) и конфиг ssh (там специфические настройки для доступа к репозиторию по ключу).

Разделение credentials

Раз уж зашла речь о разделении конфигов и о доступе – можно сразу настройки доступа по http(s) разбить немного.

Включаются они так: git config --global credential.helper store. И после этого лежат в ~/.git-credentials в открытом виде!

Разделить их для разных репозиториев внутри одного хоста – можно так (на примере github): git config --global credential.github.com.useHttpPath true

И тогда в .git-credentials будут отдельные записи лежать:

https://<USERNAME>:<PASSWORD>@github.com/path/to/repo1.git

https://<USERNAME>:<PASSWORD>@github.com/path/to/repo2.git

Но, безусловно, удобней (да и безопасней, пожалуй) – пользоваться доступом с ssh ключами.

Показать полностью
IT Git Текст
4
LeanF1lZzZ
LeanF1lZzZ
2 года назад
Лига программистов

Платный софт за бесплатно! Как получить GitHub Student Developer Pack?⁠⁠

https://youtu.be/xs_l-mVjM_w

[моё] IT Программирование Программист Разработка Github Git Видео YouTube
3
458
Thagarion
Thagarion
2 года назад
IT-юмор

Настолько облажался в Git, что он превратился в Guitar Hero⁠⁠

Настолько облажался в Git, что он превратился в Guitar Hero Программирование, Git, Программист, IT юмор, IT, Guitar Hero, X (Twitter)
Показать полностью 1
Программирование Git Программист IT юмор IT Guitar Hero X (Twitter)
25
15
anetto1502
anetto1502
2 года назад
Программирование на python

Стандарт де факто — git. Давно ли?⁠⁠

Stackoverflow с 2011 года проводит масштабные опросы разработчиков. В 2022 году в stackoverflow developer survey участвовало более 70к человек из 180 стран. Из-за большого числа участников получаются репрезентативные данные — какие технологии в трендах, куда в целом индустрия плывёт.


Сейчас лидер среди систем контроля версий (СКВ) де-факто Git со своими 97% среди профессиональных разработчиков. Можно выбирать несколько, поэтому сумма больше 100%.

Стандарт де факто — git. Давно ли? Программирование, Разработка, IT, Обучение, Telegram, Git, Python, Stack overflow, Длиннопост

Если переключиться на ответы начинающих разработчиков (скрин ниже), то SVN с 6% падает до 1.5%. Значит, через 3-5 лет в индустрию придут новые разработчики, которые не знакомы с SVN. Кстати, если вы не пользуетесь СКВ, то вы либо в 1.38% профессиональных разработчиков, либо среди 17% новичков. Учите git, любите git.

Ну, и меркуриал почти умер.

Стандарт де факто — git. Давно ли? Программирование, Разработка, IT, Обучение, Telegram, Git, Python, Stack overflow, Длиннопост

А зачем знать тренды? Чтобы не тратить время на умирающий инструмент. Например, какую систему контроля версий посоветовать начинающему разработчику. Вики насчитывает более 30 СКВ. И git был с нами не всегда.


Нашёл для вас опрос 2008 года, где лидер Subversion, скрин ниже. К сожалению, ни числа опрашиваемых, ни процентов у каждой из систем не указано. Тем не менее, git тут и не пахнет, а до настоящего времени дожили №1 SVN и №3 TFVC (они себя сейчас так называют).

Стандарт де факто — git. Давно ли? Программирование, Разработка, IT, Обучение, Telegram, Git, Python, Stack overflow, Длиннопост

В 2014 году на хабре был опрос по СКВ. Результат на скрине ниже — 71% был за git, 32% за SVN, 16% за mercurial, 8% за TFVC от Microsoft.

Стандарт де факто — git. Давно ли? Программирование, Разработка, IT, Обучение, Telegram, Git, Python, Stack overflow, Длиннопост

Так вот git пришёл, запушил, победил. Не исключено, что во многом из-за популярности github.


В телеграмм-канале DevFM разбираем разные нюансы из жизни разработчика на Python и не только. Стримы по программированию, что такое WSGI, миграция БД без даунтайма, чему стоит научиться в вузе, обман нейронных сетей. По пятницам у нас культурный код с фильмами, книгами и всяким разным.

Показать полностью 3
[моё] Программирование Разработка IT Обучение Telegram Git Python Stack overflow Длиннопост
60
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии