Pull to refresh

Comments 59

очень полезная шпаргалка. ответил на все вопросы кроме последнего, но, блин, я мозг сломал, что удаленный репозиторий это не deleted а remote.

У меня где-то опечатка есть?

Ааа, ок увидел)) благодарю

имхо если на собеседовании спрашивают рандомные вопросы из документации - смысла туда идти нет

Я искал и составлял те вопросы, которые сам периодически задавал, чтобы понять адекватность. Пока искал узнал пару интересностей.

Это всё фигня. Самое важное - это научить людей во время разрешения конфликтов в IDE применять изменения с нужной стороны. У нас был чел на проекте, месяца три работал, так он абсолютно всегда применял изменения не с той стороны. Люди с ума сходили, вроде сделал фичу, тестер протестил, задеплоили, а клиент говорит, что не работает. Стягиваешь последний develop, думаешь, ща поставлю брейкпоинт в своём коде и буду дебажить, а твоего кода просто нет!!!

Вопрос больше к лидам? Почему пул реквесты так смотрят 😂

Это они расслабились после длительной работы с адекватными разрабами))

Бывает) на такие моменты, начинаешь думать, что регламенты на комит и права на слитие не пустое место. Надо дрессировать джунов порядком..

У ревью есть много других бонусов.

Каких например, буду рад узнать? Можете подробнее раскрыть тему?

Первое, это обмен опытом. Даже сеньор от джуна иногда может подсмотреть что-то новое. Второе, это то, что в итоге ревьювер будет лучше знать, как устроен весь проект, а не только та часть, что он написал сам.

Да, это в идеальном мире, когда программист осознанно подходит к разработке. Я такое не часто встречаю.

Для этого нужно только чтобы ревьювер прочёл все изменения. Не думаю, что это прямо какая-то редкость.

Обмен идёт по двум каналам, ремесло и знание о проекте.

Ну и когда знаешь что код будут читать, то меньше костылей в него пихаешь.

Пул реквесты хорошая штука. Но в идеале было бы хорошо, если бы все члены команды читали все реквесты. Тогда они будут еще полезнее. Но такая культура редка.

На счёт всех не соглашусь, слишком затратно. Но вот ротация ревьюеров может быть полезна.

Я про изучение кода, а для оценки хватит и 2х

Что должно быть в голове у собеседующего, чтобы начать гонять по командам git? Уважаемый, у тебя всего один час на то, чтобы дать ответ на вопрос "что за человек перед тобой и сможет ли он принести прибыль организации?" И ты не нашел ничего лучше, чем спрашивать его про команды git? Да что с тобой не так!? Ты хочешь понять действительно ли перед тобой профессионал и ты для этого решил проверить насколько человек силен в зубрежке!?

Что должно быть у человека в голове, который пришел на собеседование по гиту, у меня таких и не было никогда)) я написал еще в начале, что это некоего рода шпаргалка и направление куда мыслить.

Если тебя спросят про Муму и Герасима в лодке, ты будешь описывать биологический процесс, как он топил человека, или все же характер героев и психологическую проблему произведения.

Gitflow это нечто другое. То что вы описали больше похоже на gitlabflow.

Они все похожи, отличий на самом деле мало.

Про gitlabflow не могу ничего сказать, а про отличия gitflow от githubflow могу сказать, что отличия конечно есть. Первый более спринтовый и подходит для больших команд и нечастых релизов. Второй больше потоковый, фичу сделал, фичу выкатил. Оба подхода хороши, но надо понимать какой лучше для конкретного проекта.

Очень абстрактный ответ. Частично правильный. Киллер фича gitflow в том что можно поддерживать и обновлять сразу много версий продукта. Хорошо работает для библиотек и десктоп програм, например ядра Линукс. Но за это вы платите повышенной сложностью. В общем не рекомендуется использовать.

Единственный раз когда я с этим сталкивался, это было в требованиях на разработку проекта. Ни заказчик ни разработчики проекта не знали что это такое и использовали gitlabflow, этого термина они тоже не знали.

местами как-то очень категорично

Как удалить файл/папку из репозитория?

Имхо, следует отметить, что папка/файл останется в истории гита. Если целью стоит уменьшить вес .git, то нужно переписывать историю.

За что отвечает команда git merge? Загрязняет ветку мерж комитами ...

Необязательно. Допустим, переключился я в новую ветку для работы, сделал несколько коммитов, и увидел, что это хорошо. Тогда флаг --ff-only перенесёт эти коммиты в основную ветку без коммита слияния.

Да, конечно. Согласен с вами. Вы озвучили хорошие мысли, но это мало кто понимает на начальных стадиях. Сначала база так сказать.

Благодарю, многим будет полезно. Согласен с вами, любую технологию, софт и тд стоит начинать с официальной документации - это тру стори))

Мой стаж в IT больше 25 лет, от разраба до архитектора, не помню ни одной команды git, держу под рукой шпаргалку, мне её хватает. Если пригласят на собеседование по командам git сразу пошлю умника-неадеквата подальше.

Собеседование по командам git и не бывает, не надо понимать все буквально. Но пару тройку вопросов все равно зададут. Нет?

И правильно делаете. Мне доводилось собеседовать людей, которые про git почти ничего не знали. "Вроде, commit там был".

Собеседовал "Архитектора" как-то, дак при разговоре он сам себя запутал между 3х понятий pull, push и commit. Такое неприемлемо вообще. Я понимаю, если ты пол жизни использовал svn, но там даже абревиатура отпугнула его, даже попробовать ответить на вопрос.

Именно это я и понимаю под "квалификацией". Синтаксис комманд можно и не помнить, для этого есть --help и man. Но нужно понимать, что происходит, и что требуется сделать.

Я часто использую IDE для работы с гитом. Там все это названно и выглядит слегка по другому.

Я обычно использую lazygit и nvim в разработке, процентах в 80% задач.

Зачем на собеседовании спрашивать о том, что легко осваивается в процессе работы? Это такая проверка на culture fit, только что бы такие же фанатики прошли? За около 20 лет использования git, не могу припомнить, что бы я использовал что-то, кроме init, commit, push, pull, merge, branch, diff, blame, tag и checkout. Притом, в самой их простейшей форме, без каких либо хитрых ключей. Изредка что-то нужно сделать необычное, так смотрю в документации и поисковиках - как, делаю и забываю.

Для примерного определения квалификации, зарплаты, задач, которые можно прямо сразу предложить, и потенциальных проблем, которые, возможно, придётся решать вне плана.

Вот тут очень старая история на близкую тему. Там, правда, главные герои друг друга стоят...

Я работал со студентами, они справились с созданием пул-реквестов на гитхабе. В этом плане что гит, что багтрекер, это инструменты с низким уровнем начала использования.

Я работаю в большой компании и в том числе отвечаю на вопросы других разработчиков про гит. Большинство вопросов в статье им просто не нужно знать для работы.

Для работы может быть и не нужно. Но мы сейчас живем в таком мире где пройти собеседование сложнее, чем сама работа. 😂

Это так, хотя там обычно алгоритмы и дизайн. На текущей работе про гит не спрашивали, хотя одной из возможных команд была та, которая отвечает за хранение кода.

Вопросы все больше у вас "базовые", а в разработке случаются и вопросы чуточку посложнее.

Как посмотреть содержимое и откатить merge-commit?

Как узнать в какие ветки попал коммит (по хэшу)?

Как склеить не два рядом стоящих коммита, а скажем отстоящие друг от друга на 10 коммитов?

Как проверить наложится ли ваша ветка с изменениями в другую без конфликтов не сливая ее фактически (ну или откатив слияние)?

Как отредактировать измененные в коммите файлы (добавить, удалить, переименовать)?

Всё это гуглится когда надо.

Например у меня на работе нет мердж коммитов, потому что они запрещены системой контроля версий. Поэтому мне не надо их откатывать.

Очень классные темы поднял, но статья была помечена как простая 👌

Буду очень рад почитать о ваших практиках решения заданных вами гит задач.

Я из сишарповой тусовки 😂

Еще замечание/предложение по следам комментариев. Нет вопросов про .gitignore и про то, что делать, чтобы в коммит не попала чувствительная информация, типа access token.

За что отвечает команда git merge? Загрязняет ветку мерж комитами ...

Как-то слишком категорично. Если вы сторонник ребейза, подскажите как правильно вести разработку, когда в команде разработчики пилят отдельные фичи (порой пересекающиеся), а релиз собирается под конец месяца из набора готовых фичей, причем релиз вполне может и пересобираться по желанию заказчика?

Оба варианта хороши)) просто указал особенность.

За что отвечает команда git merge?

Загрязняет ветку мерж комитами, но не изменяет историю комитов.

То есть предназначение git merge - загрязнить мерж коммитами?

Ну ОК, буду знать...

Оба варианта хороши)) просто указал особенность.

За что отвечает команда git merge?
Загрязняет ветку мерж комитами, но не изменяет историю комитов.

Гит мердж не всегда создает мердж коммиты. И вызывается он гораздо чаще.

В чем заключается разница между git pull и git fetch?
Извлекает все изменения текущей ветки с сервера
git pull


Комманда git fetch извлекает все изменения текущей ветки с сервера. Pull алиас к fetch + merge (если в конфиге прописана свзять между текущей веткой и веткой в remote репозитории).

При этом если мердж не fast-forward, то он не выполнется.

Fetch забирает со всех веток

git fetch <remote> <branch>

Без аргументов да, для remote сервера по умолчанию. У меня есть проект, где я иногда забираю ветки из форков других людей, там надо fetch с указанием remote делать.

Если так, то да) приятно пообщаться с грамотным человеком.

Sign up to leave a comment.

Articles