10 ресурсов для изучения и использования Git


Оглавление (нажмите, чтобы открыть):

Resources to learn Git

Learn by reading

Git Handbook

Git, GitHub, DVCS, oh my! Learn all the lingo and the basics of Git.

Cheat Sheets

Keep these handy! Reference sheets covering Git commands, features, SVN migrations, and bash. Available in a multiple languages.

Learn by doing

Learn Git branching

Try Git commands right from your web browser. Featuring some of your soon-to-be favorites: branch, add, commit, merge, revert, cherry-pick, rebase!

Visualizing Git

Look under the hood! Explore how Git commands affect the structure of a repository within your web browser with a free explore mode, and some constructed scenarios.

Git-It

You’ve downloaded Git, now what? Download Git-It to your machine and you’ll get a hands-on tutorial that teaches you to use Git right from your local environment, using commands on real repositories.

Looking for GitHub Training?

GitHub Learning Lab

Get the skills you need without leaving GitHub. GitHub Learning Lab takes you through a series of fun and practical projects, sharing helpful feedback along the way.

Professional training

Whether you’re just getting started or you use GitHub every day, the GitHub Professional Services Team can provide you with the skills your organization needs to work smarter.

Урок 1. Git и Github. Введение. Что такое Git и Github

Дата публикации: 15-08-2020

От автора: иногда, при разработке больших проектов, возникает необходимость вернуться в некоторое состояние проекта в прошлом. Например, вы в какой-то момент времени начали разработку некоторого функционала для сайта. Несколько дней работали над реализацией этого функционала, после чего стало понятно, что выбранное решение не подходит и нужно найти другое. В этот момент полезно «откатиться» к исходному состоянию проекта, до внесения изменений и искать другой вариант реализации. Это один из вариантов, когда нам может быть полезен git.

В данном уроке мы с вами поговорим о том, что такое git и что такое github. Узнаем, как они устроены, для чего предназначены и как работают. Узнаем преимущества работы с git. Из урока у вас будет понимание того, как работать с git и как он устроен, и вы сможете определить для себя, стоит ли вам его использовать в своем проекте или проектах.

Git для начинающих

Для людей естественно сопротивляться изменениям. Если Git не встретился вам, когда вы начинали работать с системами контроля версий, наверняка вы чувствуете себя комфортнее в системе Subversion (SVN) .

Часто люди говорят, что Git слишком сложен для новичков. Тем не менее, я позволю себе не согласиться с этим.

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

В этой статье мы поговорим об основах Git – как инициализировать ваши проекты, как управлять новыми и существующими файлами, и как сохранить ваш код в облаке.

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

Установка Git

На официальном сайте Git есть детальная информация об его установке на Linux, Mac и Windows. В нашем случае, мы будем использовать в целях демонстрации Ubuntu 13.04 , где установим Git с помощью apt-get:

Начальная настройка

Давайте создадим каталог, внутри которого мы будем работать. В качестве альтернативы вы можете использовать Git для управления одним из существующих проектов; в таком случае вам не нужно будет создавать демо-каталог, как показано ниже:

Первым этапом является инициализация Git в каталоге. Это можно сделать с помощью команды init , которая создает каталог .git , содержащий всю информацию, связанную с Git для вашего проекта.

Далее нам нужно указать имя и адрес электронной почты. Вы можете сделать это следующим образом, подставив свое имя и электронную почту:

Важно отметить, что если вы не укажите свое имя и адрес электронной почты, то будут использованы значения по умолчанию. В нашем случае, значениями по умолчанию были бы имя пользователя donny и адрес электронной почты donny@ubuntu .

Кроме того, мы задаем для цвета пользовательского интерфейса значение auto , благодаря чему вывод команд Git будет иметь цветовую подсветку.

Префикс —global перед командами нужен для того, чтобы не вводить эти команды настроек в следующий раз, когда мы запустим проект Git в нашей системе.

Подготовка файлов для коммита

Следующий шаг — это создание файлов в каталоге. Вы можете использовать, к примеру, текстовый редактор Vim . Заметьте, что если вы собираетесь добавить Git к уже существующему каталогу, вам не нужно выполнять этот шаг:

Проверить статус репозитория

Теперь, когда у нас есть несколько файлов в нашем репозитории, давайте посмотрим, как Git обращается с ними. Для того, чтобы проверить текущий статус репозитория, нужно воспользоваться командой git status :

Добавление файлов в Git для отслеживания

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

Добавляем файлы при помощи команды add :

Снова проверив состояние репозитория, мы увидим, что был добавлен один файл:

Для добавления нескольких файлов, можно использовать следующую запись команды (обратите внимание, что мы добавили еще один файл в целях демонстрации):

Вы можете использовать git add рекурсивно, но будьте осторожны с этой командой. Существуют определенные файлы (например, скомпилированные файлы), которые обычно хранят вне репозитория Git .

Если вы будете использовать команду add рекурсивно, она добавит все такие файлы, если они существуют в вашем репозитории.


Удаление файлов

Предположим, вы добавили в Git файлы, которые не хотите отслеживать. В такой ситуации, нужно сказать Git , чтобы он перестал их отслеживать.

Но выполнение простой команды git rm удалит файл не только из Git , но также и из вашей локальной файловой системы! Чтобы

Git прекратил отслеживать файл, но при этом в вашей локальной системе сохранился сам файл, выполните следующую команду:

Коммит изменений

После того, как вы разместили свои файлы, можете закоммитить их в Git . Представьте, что коммит — это запечатление определенного момента, к которому вы можете вернуться, чтобы получить доступ к вашему репозиторию на этом этапе.

Вы можете привязывать к каждому коммиту сообщение, которое добавляется при помощи префикса -m :

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

Избегайте слишком общих сообщений типа « Исправлены ошибки ». Если у вас есть трекер задач, вы можете добавлять сообщения в виде « Исправлена ошибка #234 ».

Хорошей практикой является использование имени ветки или имени функции в качестве префикса к сообщению коммита. Например, « Управление активами: добавлена функция для генерации PDF файлов активов » — это содержательное сообщение.

Git идентифицирует коммиты путем добавления длинного шестнадцатеричного числа к каждому коммиту. Как правило, не нужно копировать всю строку, для определения вашего коммита достаточно первых 5-6 символов.

Обратите внимание, что на скриншоте наш первый коммит определяется кодом 8dd76fc .

Дальнейшие коммиты

Теперь давайте изменим несколько файлов после нашего первого коммита. После их изменения, мы увидим, что в результате выполнения команды git status Git обнаружил изменения в файлах, которые он отслеживает:

Вы можете проверить изменения в отслеживаемых файлах, сделанные в последнем коммите, с помощью команды git diff . Если вы хотите просмотреть изменения в определенном файле, используйте команду git diff :

Вам нужно добавить эти файлы снова, чтобы осуществить изменения в отслеживаемых файлах для следующего коммита. Можно добавить все отслеживаемые файлы, выполнив команду:

Вы можете избежать использования этой команды, воспользовавшись префиксом -a для команды git commit , который добавит все изменения в отслеживаемые файлы.

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

Если вы избирательно размещаете файлы, то заметите изменения в каждом файле. Но если вы добавите префикс -a к вашему коммиту, все файлы будут закоммичены, и вы не сможете выявить возможные ошибки.

После того, как вы разместили ваши файлы, можно приступить к коммиту. Я упоминал, что с каждым коммитом может быть ассоциировано сообщение, которое мы вводим с помощью префикса -m .

Однако существует возможность ввести сообщение в несколько строк, воспользовавшись командой git commit , которая открывает интерактивную форму для записи:

Управление проектом

Чтобы просмотреть историю вашего проекта, вы можете выполнить следующую команду:

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

Для того чтобы просмотреть подробную информацию об определенном коммите и файлах, которые были изменены, выполните следующую команду:

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

Размещение кода в облаке

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

Поскольку Git не имеет центрального сервера как Subversion , вам нужно добавить каждый источник для взаимодействия с другими. Вот тут возникает понятие remote . remote означает удаленную версию вашего репозитория.

Если вы хотите разместить код в облаке, вы можете создать проект на GitHub , GitLab или BitBucket и поместить уже существующий код в репозиторий.

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

Мастер Йода рекомендует:  PHP функция для удаления определенных HTML-тегов и атрибутов PHP

После того, как вы создадите удаленный репозиторий, у вас появится возможность добавить удаленный origin и затем поместить код в origin :

Заключение

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

Данная публикация представляет собой перевод статьи « Git for Beginners » , подготовленной дружной командой проекта Интернет-технологии.ру

Введение в Git

В течении 13 роликов мы познакомимся с основами системы контроля версий Git.

Выясним почему она важна в современной разработке и коллективном программировании.
Познакомимся с основными понятиями Git: репозиториями, коммитами, ветками и тэгами.
Изучим базовые операции: создание и клонирование репозитория, слияние веток, запрос истории изменений и многое другое.
Посмотрим, как при помощи Git сдавать домашние задания.

Данный курс является базовым и после него можно приступать к изучению любого языка программирования.
Кроме того, вы будете готовы к прохождению собеседования, где несколько вопросов обычно посвящены системе контроля версий.

Система управления версиями Git

Apple

Программирование и СУБД

Курсы Java

Этот курс в нашем Центре
успешно закончили
1400 человек!

Git versions control system

Хотите работать над командными проектами по ИТ-разработке в два раза быстрее? Пройдите наш новый авторский курс и научитесь использовать все преимущества Git!

Git – распределенная система управления версиями (VCS). Это универсальный, свободный и удобный инструмент для командной работы программистов над проектами любого уровня. Git позволяет нескольким разработчикам работать одновременно над своими подзадачами, создавая равноправные ветви. При этом каждое сохранение (коммит) в Git не перезаписывает предыдущее, и в любой момент Вы сможете вернуться к исходной версии кода.


Именно поэтому миллионы программистов используют Git в своей работе каждый день. Git облегчает жизнь разработчикам мобильных приложений, компьютерных игр, СПО, веб-программистам. Git покорил ИТ-мир надёжностью, высокой производительностью, удобством работы с ветками и независимостью от сервера.

Курс будет полезен не только начинающим, но и опытным разработчикам, желающим ликвидировать пробелы в навыках использования Git. Он носит прикладной характер и направлен на решение конкретных задач и вопросов, с которыми сталкиваются разработчики

Вы узнаете, какие бывают системы управления версиями и как Git отслеживает изменения кода. Научитесь устанавливать и настраивать систему. Сможете создавать ветви, производить их слияние и устранять конфликты в коде. Попрактикуетесь в распределённой работе и освоите инструментарий Git.

Пройдите этот уникальный курс – и любой Ваш командный проект по ИТ-разработке будет эффективным!

По окончании курса Вы будете уметь:

  • устанавливать и настраивать систему;
  • создавать ветви, производить их слияние и устранять конфликты в коде.

Специалисты, обладающие этими знаниями и навыками, в настоящее время крайне востребованы. Большинство выпускников наших курсов делают успешную карьеру и пользуются уважением работодателей.

Интерактивные курсы по Git

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

Благодаря наличию в интернете интерактивных учебных руководств и онлайн-курсов обучение Git оказалось для меня проще. Они сделали эту задачу более увлекательной и интересной, что, в свою очередь, повысило желание этим заниматься. Кроме того, для их прохождения не требуется, чтобы я устанавливал и настраивал Git на своем компьютере, так что я смог сразу начать обучение и экспериментирование.

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

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

1. Try Git

Try Git является интерактивным руководством, которое отлично подойдет для тех пользователей, которые впервые сталкиваются с Git. В нем рассматриваются самые важные команды Git — то, чем вы, скорее всего, будете пользоваться изо дня в день — например, при создании хранилища Git, фиксации изменений и работы с удаленными репозиториями.

Этот ускоренный курс спроектирован так, что его можно пройти за 15 минут.

2. Git Real (Введение)

Git Real является интерактивный курсом, созданным в рамках школы кодирования Code School. В нем приводятся видео инструкции и предлагаются практические интерактивные задачи.

Бесплатным является только первый уровень курса Git Real (который назван «Введение»), но в нем рассмотрены все основных сведения, которые вам желательно знать о Git. Подумайте об прохождении этого уровня, поскольку в нем Git рассмотрен более детально, чем в Try Git.

Что мне в целом нравится в курсе Git Real, то это то, что он сфокусирован на том, чем мы, скорее всего, будем пользоваться в процессе веб-разработки.

3. Изучаем ветвление в Git

Что касается меня, то самые самыми сложными темами, касающимися Git, были дерево исходных кодов (source tree), обход дерева исходных кодов (source-tree traversal ) и ветвление (branching). Это интерактивное веб-руководство по Git оказалось меня чрезвычайно полезным.

Руководство Learn Git Branching (Изучаем ветвление в Git) состоит из пяти частей, которые упорядочены по возрастанию сложности усвоения материала, причем каждая часть имеет от двух до пяти модулей.

Советы по изучению материала

Следующий совет предназначен для тех, кто изучает Git с нуля и хочет на практике достичь уровня мастера.

Изучайте использование Git из командной строки

Очень заманчиво пользоваться графический пользовательским интерфейсом, и нет ничего плохого в том, что позже для того, чттобы ускорить процесс, вы будете пользоваться графическим интерфейсом. И, как человек, которому нравится визуальный интерфес, я избегаю, насколько это возможно, интерфейсы командной строки.

Но то, что я изучал Git с помощью командной строки, действительно помогло мне понять абстрактные понятия Git, т. к. у меня не было никаких визуальных костылей, на которые я бы мог полагаться (например, диаграмм каталогов).

Использование интерфейса командной строки является более сложным, и это хорошо, поскольку это заставляет нас работать медленнее и по-настоящему осваивать материал.

Кроме того, когда вы освоитесь с интерфейсом командной строки, то это поможет вам в дальнейшем при использовании других веб-компонентов с открытым исходным кодом, таких как препроцессоры CSS, Node, Bower, Grunt и так далее.

Не торопитесь

Если что-то делать, то это следует делать хорошо.

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

Если вы новичок в веб-разработке и программировании, то на это у вас может пойти больше времени, и вам, в дополнение к тем руководствам, которые уже здесь упомянуты, возможно, потребуется для того, чтобы заполнить все пробелы прочесть другие руководства по Git. Но я считаю, что это нормально, поскольку вы получите ценный навык, который в долгосрочной перспективе поможет вам сэкономить время. Знание того, как использовать Git, также может открыть новые возможности для карьерного роста, или, по крайней мере, дать вам преимущество над кандидатами, которые не знакомы с системами контроля версий.

Рассматривайте обучение Git как инвестиции.

Используйте Git на практике сразу, как окажется возможным

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

То, что вы можете сделать прямо сейчас:

  1. Клонируйте с GitHub на ваш компьютер проект с открытым кодом и внести в него изменения. Используйте ветвление для отслеживания ваших изменений.
  2. Опубликуйте на GitHub небольшой проект с открытым исходным кодом. Это не обязательно должен быть полномасштабный веб-фреймворк для приложений или что-то подобное — на их создание потребуется много времени и это помешает вам достичь целей данного задания. Для начала прекрасным примером такого проекта можете быть простой компонент интерфейса, например, панель навигации или демонстрация использования CSS.
  3. Попроситесь поучаствовать в проектах с открытым исходным кодом. Прежде чем делать это, важно ознакомится с этикетом работы с открытым исходным кодом и конкретными правилами работы с конкретным проектом. собственные руководящие принципы проекта, Для начала, вы можете попрактиковаться на моем репозитории GitHub в случае, если вы заметили что-нибудь, что должно быть исправлено (спасибо).

Послесловие переводчика

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

Но если вы почувствуете, что уровень ваших знаний английского языка все же недостаточен для прохождения предлагаемых курсов или если вы вообще не знаете английского языка, то можно пойти другим путем — поискать с помощью Google материалы о Git на русском языке. В сети выложено достаточно много материалов о Git на многих языках, однако первое, с чем советуют сразу ознакомиться практически на всех сайтах, рассказывающих о Git, это прочитать книгу Pro Git book. С ней можно ознакомиться абсолютно бесплатно: она переведена на многие языки, в том числе и (увы, частично) на русский язык ( http://git-scm.com/book/ru/v2 ). Обратите внимание, что это уже второе издание книги (2014 г.) и она распространяется по свободной лицензии Creative Commons Attribution-NonCommercial-ShareAlike 3.0.

Есть еще один способ первоначального ознакомления с Git (впрочем, как и с многими другими технологиями) — поискать на youtube подходящее видео. Для первоначального ознакомления с Git можно посоветовать следующие видео на русском языке:

Урок 1. Git и Github. Введение. Что такое Git и Github

Дата публикации: 15-08-2020


От автора: иногда, при разработке больших проектов, возникает необходимость вернуться в некоторое состояние проекта в прошлом. Например, вы в какой-то момент времени начали разработку некоторого функционала для сайта. Несколько дней работали над реализацией этого функционала, после чего стало понятно, что выбранное решение не подходит и нужно найти другое. В этот момент полезно «откатиться» к исходному состоянию проекта, до внесения изменений и искать другой вариант реализации. Это один из вариантов, когда нам может быть полезен git.

В данном уроке мы с вами поговорим о том, что такое git и что такое github. Узнаем, как они устроены, для чего предназначены и как работают. Узнаем преимущества работы с git. Из урока у вас будет понимание того, как работать с git и как он устроен, и вы сможете определить для себя, стоит ли вам его использовать в своем проекте или проектах.

Как пользоваться GIT – разбираемся за 30 минут

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

Начинающего учиться, как пользоваться GIT, часто пугают загадочные команды и их параметры, коими он изобилует. Но вам не нужно знать всё досконально, чтобы использовать GIT не вдаваясь в подробности. Вы можете начать с нескольких наиболее часто используемых функций, а затем медленно осваивать программу дальше. И это именно то, чему мы научимся сегодня. Начнем!

Мастер Йода рекомендует:  Как определить CMS сайта – шпаргалка для начинающих

Основы основ работы с GIT

GIT — это определённый набор утилит командной строки, отслеживающих и записывающих изменения в файлах. При помощи его, возможно, восстанавливать предыдущие версии ваших программ, сравнивать, анализировать, совмещать изменения и многое другое. Такой процесс принято называть контроль версий. На сегодняшний день есть много систем контроля версий, выполняющих такую же работу. Вы могли уже слышать ранее о некоторых из них – SVN, Mercurial, Perforce, CVS, Bitkeeper.

GIT децентрализован, что означает его независимость от центрального сервера для сохранения старых версий ваших файлов. Он работает полностью локально, сохраняя данные в виде папки на вашем жестком диске, которая называется репозиторием. Но вы можете хранить копию репозитория так же и в «облаке» для взаимодействия между несколькими людьми, работающих над одним кодом. Как раз для таких целей используют GitHub и BitBucket .

1. Установка GIT

Установить GIT на ваш компьютер несложно:

  • Linux – просто откройте терминал и установите GIT через менеджер пакетов вашего дистрибутива. Команда для Ubuntu: sudo apt-get install git ;
  • Windows – можно воспользоваться установщиком на официально сайте или более лучший вариант GIT для Windows , так как он включает и графический клиент (GUI client), и эмулятор командной строки BASH;
  • OS X – легче всего воспользоваться homebrew и ввести команду brew install git в вашем терминале.

Если же вам не хотеться возиться с консолью или терминалом, то можно установить себе графический клиент GIT. Вот два наиболее популярных Sourcetree и GitHub Desktop , если поискать, то можно найти и другие не менее хорошие, чем эти. Но не стоит забывать, что умение работать с GIT-командами является хорошей практикой и в некоторых случаях это гораздо удобней, потому в оставшейся части урока мы с фокусируемся именно на этом.

2. Первоначальная настройка GIT

Теперь, когда GIT установлен на ваш компьютер, нужно добавить несколько несложных настроек. И хотя их достаточно много, но мы собираемся указать только самое важное: ваше имя пользователя и email. Откройте терминал и введите следующие команды:

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

3. Создание нового репозитория – git init

Как упоминалось ранее, GIT хранит свои файлы и историю непосредственно как папка в вашем проекте. Чтобы создать новый репозиторий, откройте терминал, укажите адрес директории проекта и введите команду git init . Тем самым вы позволите GIT создать скрытый директорий .git для этой конкретной папки, в котором будут храниться история и конфигурация.

Для примера создайте папку на рабочем столе под названием git_exersice, откройте терминал и введите следующее:

Командная строка должна ответить подобным образом:

Это означает, что репозиторий успешно создан, но всё ещё пуст. А теперь создайте простой текстовый файл hello.txt и сохраните в папку git_exersice.

4. Проверка статуса – git status

GIT статус это ещё одна необходимая для изучения команда, которая возвращает информацию о текущем состоянии репозитория: всё ли сохранилось, что сохранилось нового, что поменялось и так далее. На команду git status в нашем новом репозитории должен прийти такой ответ:

Полученное сообщение показывает, что файл hello.txt не отслеживается. Это означает, что файл новый, и GIT ещё не знает, должен ли отслеживать вносимые в него изменения или же игнорировать. Для подтверждения файла следует его добавить в индекс.

5. Индексирование – git add

У GIT есть понятие «области индексирования». Его можно представить себе, как пустой холст для хранения изменений, которые вы хотели бы зафиксировать. Изначально область появляется пустой, но вы можете добавлять к ней файлы (или даже отдельные строки и части файлов) с помощью команды git add и, наконец, всё сохранить (создать своеобразный «скриншот») с помощью git commit .

В нашем случае у нас есть только один файл, поэтому его и добавим:

Если нам нужно добавить всё из каталога, мы можем воспользоваться командой:

Вновь проверив статус, мы должны получить уже другой ответ:

Файл готов для сохранения (создания коммита)! Это сообщение о статусе также говорит нам, что было изменено в отношении файлов в области индексирования, в данном случае о появлении нового файла (new file), но файл может показываться как modified или deleted, в зависимости от действий с ним с момента прошлой команды git add .

6. Сохранение изменений – git commit

Зафиксированные изменения показывают состояние репозитория в определённый момент времени. Как скриншот, с помощью которого мы просматриваем состояние вещей в прошлом.

Для создания новой сохранённой версии файлов нам нужно добавить как минимум одно изменение в область индексирования (мы только что это сделали с git add ) и ввести следующую команду:

Эта команда создаст новый «скриншот» со всеми сделанными изменениями (включая hello.txt). Часть -m «Initial commmit» – это краткий комментарий, написанный пользователем, к данной версии файлов. Хорошая привычка – регулярно фиксировать и всегда писать внятный комментарий.

Удалённые репозитории и GIT

Сейчас наша информация об изменениях храниться локально – она находиться в каталоге .git. Несмотря на то, что локальный репозиторий полезен сам по себе, во многих случаях мы захотим поделиться своей работой и разместить его на сервере.

1. Подключение к удалённому репозиторию – git remote add

Для того чтобы загрузить что-то в удалённый репозиторий, для начала нам нужно установить соединение с ним. Для этого урока наш адрес репозитория будет https://github.com/tutorialzine/awesome-project. Конечно лучше самому создать собственный пустой репозиторий на GitHub , BitBucket или другом сервисе. Регистрация и установка могут занять время, но все сервисы предлагают пошаговые инструкции в помощь вам.

Для соединения нашего локального репозитория с удалённым на GitHub, мы должны в терминале вести следующую строку:

Один проект может иметь несколько удалённых репозиториев одновременно. Для их разделения нужно дать им разные имена. Традиционно основной удалённый GIT-репозиторий называют origin.

2. Загрузка на сервер – git push

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

Команда GIT для push, git push , имеет два параметра – имя удалённого репозитория (мы назвали наш origin) и ветка для отправки (ветка по умолчанию для каждого удалённого репозитория – master).

В зависимости от сервиса, используемого вами, необходимо пройти аутентификацию для push. Если все было сделано правильно, то когда вы зайдёте через веб-браузер в удаленный репозиторий, созданный ранее, там должен быть доступен hello.txt.

3. Клонирование репозитория – git clone

После клонирования другие люди смогут увидеть и изучить ваш удалённый репозиторий на GitHub. Также будет возможно загрузить его локально и иметь полную рабочую копию вашего проекта с командой git clone :

Новый локальный репозиторий создаётся автоматически, с GitHub-версией, настроенной как удалённый репозиторий.


4. Получение изменений с сервера – git pull

Если вы обновите свой репозиторий, другие смогут загрузить внесённые изменения с командой pull.

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

Ветви в GIT

При разработке новой версии программы лучше всего работать над копией исходного проекта, называемой ветвью. Ветви имеют свою собственную историю, а их изменения изолированы от основного репозитория до тех пор, пока вы не решите снова объединить их. Это делается по нескольким причинам:

  • Исправная, стабильная версия кода не будет повреждена;
  • Люди могут безопасно разрабатывать собственные версии отдельно друг от друга;
  • Разработчики могут работать на своей ветви без опасения, что кто-то изменит их код;
  • Когда разработчики не уверены, как сделать лучше, они могут работать над своими версиями в отдельных ветвях, а затем сравнить результаты между собой.

1. Создание новых ветвей – git branch

Ветвь по умолчанию для каждого репозитория называется master. Для создания другой используйте команду git branch .

Тем самым вы создаёте новую ветвь, на данном этапе одинаковую с master.

2. Смена ветвей – git checkout

Теперь, когда мы выполнили команду git branch , мы получили доступ к двум опциям:

Master – текущая ветвь и помечена звёздочкой. Однако мы хотим работать над новыми замечательными версиями программы, поэтому нам нужно переключиться на другую ветвь. Это делается командой git checkout с указанием одного параметра – ветвь для переключения.

3. Объединение ветвей – git merge

Наша «новая версия» будет просто другим текстовым файлом под названием feature.txt. Мы создадим его, добавим и зафиксируем.

Далее мы вернемся в ветвь master.

Теперь, если мы откроем наш проект в файловом менеджере, мы заметим, что feature.txt исчез. Это потому, что мы вернулись в master-ветвь, и здесь feature.txt так и не был создан. Чтобы перенести его сюда, нам нужно объединить две ветви вместе командой git merge , применив изменения, сделанные в amazing_new_feature, к основной версии проекта.

Ветвь master обновлена, а ветвь awesome_new_feature branch больше не нужна и мы можем её удалить.

Продвинутый уровень GIT, ещё больше полезных команд

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

1. Просмотр отличий между сохранёнными версиями

Каждая зафиксированная версия программы имеет уникальный идентификационный номер в формате строки из чисел и символов. Для просмотра списка коммитов (сохранённых версий) с их идефикаторами мы можем использовать команду git log :

Как видите, >git show [commit] :

Просмотреть отличия двух любых коммитов можно с помощью команды git diff с указанием на требуемые версии: [commit-from]..[commit-to].

Мы сравнили первый коммит с последним и увидели все изменения, когда-либо внесённые. Обычно это проще сделать, используя команду git difftool , которая покажет все различия между началом и концом в графическом клиенте.

2. Возвращение файла в предыдущую версию

GIT позволяет нам вернуть любой выбранный файл назад в одно из сохранённых его состояний. Это делается через команду git checkout , которую мы уже использовали для смены ветвей, но она также может переключать версии (достаточно часто в GIT одна команда используется для нескольких кажущихся совершенно не связанных между собой действий).

В следующем примере мы отменим абсолютно все изменения в файле hello.txt, сделанные после первой фиксации. Нам необходимо указать идентификатор версии, к которой мы хотим вернуться, а также полный путь к нашему файлу.

3. Исправление коммита

Если вы заметили, что вы сделали опечатку в своей команде к сохранению, или вы забыли добавить файл, и заметили сразу после фиксации, вы можете легко исправить это с помощью команды git commit —amend . Она добавит всё из последней версии обратно в область индексирования и попытается создать новую фиксацию. Это дает вам возможность исправить вашу неправильную команду или добавить дополнительные файлы в область индексирования.

Для корректировок потруднее, которые должны быть не в последней версии (или вы уже успели отправить свои изменения на сервер), используйте команду git revert . Она отменит все изменения в этой фиксации и создаст новую, которая будет полностью противоположна исходной.

Мастер Йода рекомендует:  Xamarin Live Player упрощает разработку iOS- и Android-приложений на Windows

Ей может быть присвоено имя HEAD.

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

Во время возвращения к предыдущим версиям помните, что во время объединения есть большая вероятность конфликта. Такое случается, если файл был изменен в другой, более поздней фиксации, и теперь GIT не может найти правильные строки для возвращения, поскольку их больше нет.

4. Разрешение конфликтов объединения

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

Давайте посмотрим на пример, где мы будем пытаться объединить две ветви, называющиеся john_branch и tim_branch. И Джон, и Тим записывают в одном и том же файле функцию, которая отображает все элементы в массиве.

Джон использует цикл for:

Тим же предпочёл forEach:

Они оба фиксируют свой код на собственных ветвях. Теперь, если они попытаются объединить эти две ветви, то увидят следующее сообщение об ошибке:

GIT не смог объединить ветви автоматически, так что разработчикам придётся вручную разрешить конфликт. Если они откроют файл с конфликтом, они увидят, что GIT пометил проблемные строки.

Выше черты из знаков «равно» мы видим текущую фиксацию HEAD и ниже -конфликтующую. Таким образом, мы можем четко видеть различия и решить, какая версия лучше, или же вовсе написать новую. В данной ситуации мы пойдём до последнего и перепишем все это, удаляя маркеры, чтобы GIT знал, что мы закончили.

Как только всё будет отлажено, должна появиться объединённая фиксация.

Как видите, процесс достаточно утомительный, а в больших проектах справиться с конфликтом может быть чрезвычайно трудно. Большинство разработчиков предпочитают разрешать конфликты с помощью графического клиента , значительно упрощающего действия. Для его запуска воспользуйтесь командой git mergetool .

5. Настройка .gitignore

Во многих проектах присутствуют файлы или папки, которые мы не хотим фиксировать. Мы можем «железно» заблокировать их включение в наш git add –A созданием файла .gitignore:

  • Вручную создайте текстовый файл и назовите его .gitignore, сохраните в каталоге своего проекта;
  • В файле пропишите имена всех файлов/каталогов, которые должны игнорироваться, каждое название с новой строки;
  • .gitignore должен самостоятельно добавиться, зафиксироваться и отправиться на сервер, как любой другой файл в проекте.


Хорошие примеры игнорируемых файлов:

  • лог-файлы;
  • сборщик задач;
  • папка node_modules в проектах node.js;
  • папки, созданные такими IDE (интегрированные среды разработки), как Netbeans и IntelliJ;
  • личные примечания разработчика.

Файл .gitignore блокирует всё вышеуказанное примерно подобным образом:

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

Заключение

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

GIT достаточно сложен и имеет кучу функций и трюков. Если вы хотите узнать больше, то ниже мы перечислили некоторые рекомендуемые обучающие ресурсы:

  • Официальная документация GIT, включая полную книгу и видеоуроки ;
  • Получение прав GIT– коллекция уроков и статей Atlassian ;
  • Список графических клиентов ;
  • Памятка о GIT (PDF) ;
  • Создать .gitignore файл онлайн .

Изучайте Git на практике

Особенности курса:

  • — Теория, основанная на многолетней практике
  • — Уникальная практика в специальных контейнерах
  • — Сложные экзамены
  • — Матерные частушки new!

После прохождения этого курса вы сможете преодолеть барьер «неловкости» перед Git, значительно повысить свою производительность и найти работу в достойной IT-компании

Git — окно в мир профессиональной разработки

Git — не роскошь, а необходимость

Содержание курса Go Git

Настройки

Вебинар. Практика: 48 заданий. Экзамен: 10 вопросов.

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

Сохраняемся

Вебинар. Практика: 30 заданий. Экзамен: 10 вопросов.

Если до сих пор вы не любили добавлять изменения в коммиты через консоль, то это занятие для вам понравится. Мы разберем несколько интерактивных режимов, удобные файловые паттерны, узнаем многие тонкости и подводные камни команд add и commit . После этого урока вы сможете создавать коммиты в консоли быстрее, чем в IDE или в редакторе.

Осматриваемся

Вебинар. Практика: 67 заданий. Экзамен: 10 вопросов.

Скажу прямо: умение осматриваться (и откатываться) в консоли переведет вас из состояния «трогал Git» в состояние «плавали, знаем». Если вы вникнете во все приемы, которые я дам вам на этом занятии, вы сможете находить проблемы в разы быстрее, понимать что, когда, где и зачем было сделано. Это понимание даст вам уверенность в себе при работе над проектом, особенно в команде. Наверное, нельзя выделять любимых детей, но это занятие — одно из моих любимых. Удачи!

Откатываемся

Вебинар. Практика: 53 задания. Экзамен: 10 вопросов.

Если умение осматриваться добавит вам уверенности при работе с Git в команде, то умение откатываться сделает вас полноценным Чаком Норрисом. Не помню, чтобы он работал в команде, но вы поняли идею. Мы рассмотрим более 12 способов откатывать изменения в репозитории. Это очень-очень крутой урок.

Ветки и теги

Вебинар. Практика: 53 задания. Экзамен: 12 вопросов.

На этом уроке я объясню, как можно использовать ветки и тэги, дам команды для быстрой работы с ними. Еще я объясню понятным языком, в чем разница между master , origin/master и origin master . Мы обсудим также Gitflow — самый популярный принцип командной работы в Git.

Слияния и конфликты

Вебинар. Практика: 62 задания. Экзамен: 13 вопросов.

Никто не любит конфликты. Это нормально. Но профессиональные разработчики не должны бояться конфликтов. Я научу вас четырем наиболее удобным способам слияния (да, не только merge ), в том числе без конфликтов. Конечно, разрешать конфликты в консоли мы тоже научимся. Уверен, этот урок прогонит последнего буку из вашего шкафа.

Удаленные репозитории

Вебинар. Практика: 53 задания. Экзамен: 9 вопросов.

Мы обсудим принципы и нюансы команд для обмена данными с удаленными репозиториями, различия между ssh и https . Вы научитесь работать со связями удаленных репозиториев и удаленных веток. Мы поговорим про возможные проблемы при обмене данными. Также я расскажу вам о форках и пул риквестах. Этим уроком мы закроем оставшиеся пробелы вашего понимания Git.

Лайфхаки и инструменты

На десерт я открою вам редкие, но очень удобные команды Git, а также команды для работы с консолью Linux (Bash), которые не собраны ни в одном другом месте. Это квинтэссенция всех хитростей, которые я собрал за последние годы работы с Git в частности и Unix в целом.

Изучение GIT. Entry Level

В своей текущей работе я использую SVN, но приходилось пару раз использовать и git. Он мне показался несколько сложнее и менее понятен. Целью я ставлю знакомство работы с git, изучение основных преимуществ и недостатков по сравнению с другими системами контроля версий.

NB: Подзадачи могут добавляться по мере выполнения данной цели, на случай, если я буду чересчур жаден до знаний 🙂

Далее описание из wiki 🙂

Git — распределённая система управления версиями. Проект был создан Линусом Торвальдсом для управления разработкой ядра Linux, первая версия выпущена 7 апреля 2005 года. На сегодняшний день его поддерживает Джунио Хамано.

Часто называемые преимущества git перед другими DVCS:

  • Высокая производительность.
  • Развитые средства интеграции с другими VCS, в частности, с CVS, SVN и Mercurial. Помимо разнонаправленных конвертеров репозиториев, имеющиеся в комплекте программные средства позволяют разработчикам использовать git при размещении центрального репозитория в SVN или CVS, кроме того, git может имитировать cvs-сервер, обеспечивая работу через клиентские приложения и поддержку в средах разработки, специально не поддерживающих git.
  • Продуманная система команд, позволяющая удобно встраивать git в скрипты.
  • Качественный веб-интерфейс «из коробки».
  • Репозитории git могут распространяться и обновляться общесистемными файловыми утилитами архивации и обновления, такими как rsync, благодаря тому, что фиксации изменений и синхронизации не меняют существующие файлы с данными, а только добавляют новые (за исключением некоторых служебных файлов, которые могут быть автоматически обновлены с помощью имеющихся в составе системы утилит). Для раздачи репозитория по сети достаточно любого веб-сервера.

В числе недостатков git обычно называют:

  • Отсутствие сквозной нумерации коммитов монотонно непрерывно возрастающими целыми числами. Во многих проектах используется автоматическое получение номера этой версии (например, командой svnversion), построение .H файла на основе этого числа, и далее его использование при создании штампа версии исполняемого файла, некоторых вшитых в него строк и так далее.
  • Отсутствие переносимой на другие операционные системы поддержки путей в кодировке Unicode в Microsoft Windows (для версий msysgit до 1.8.1). Если путь содержит символы, отличные от ANSI, то их поддержка из командной строки требует специфических настроек, которые не гарантируют правильного отображения файловых имён при пользовании тем же репозиторием из других ОС. Одним из способов решения проблемы для git 1.7 является использование специально пропатченного консольного клиента. Другой вариант — использование графических утилит, работающих напрямую через API, таких как TortoiseGit.
  • Некоторое неудобство для пользователей, переходящих с других VCS. Команды git, ориентированные на наборы изменений, а не на файлы, могут вызвать недоумение у пользователей, привыкших к файл-ориентированным VCS, таким как SVN. Например, команда «add», которая в большинстве систем управления версиями производит добавление файла к проекту, в git подготавливает к фиксации сделанные в файлах изменения. При этом сохраняется не патч, описывающий изменения, а новая версия целевого файла.
  • Использование для идентификации ревизий хешей SHA1, что приводит к необходимости оперировать длинными строками вместо коротких номеров версий, как во многих других системах (хотя в командах допускается использование неполных хеш-строк).
  • Бо́льшие накладные расходы при работе с проектами, в которых делаются многочисленные несвязанные между собой изменения файлов. При работе в таком режиме размеры наборов изменений становятся достаточно велики и происходит быстрый рост объёма репозиториев.
  • Бо́льшие затраты времени, по сравнению с файл-ориентированными системами, на формирование истории конкретного файла, истории правок конкретного пользователя, поиска изменений, относящихся к заданному месту определённого файла.
  • Отсутствие отдельной команды переименования/перемещения файла, которая отображалась бы в истории как соответствующее единое действие. Существующий скрипт git mv фактически выполняет переименование, копирование файла и удаление его на старом месте, что требует специального анализа для определения, что в действительности файл был просто перенесён (этот анализ выполняется автоматически командами просмотра истории). Однако, учитывая тот факт, что наличие специальной команды для переименования/перемещения файлов технически не вынуждает пользователя использовать именно её (и, как следствие, в этом случае возможны разрывы в истории), поведение git может считаться преимуществом.
  • Система работает только с файлами и их содержимым, и не отслеживает пустые каталоги.
Добавить комментарий