2nd Edition (2014)
The entire Pro Git book, written by Scott Chacon and Ben Straub and published by Apress, is available here. All content is licensed under the Creative Commons Attribution Non Commercial Share Alike 3.0 license. Print versions of the book are available on Amazon.com.>
git-scm.com
2nd Edition (2014)
The entire Pro Git book, written by Scott Chacon and Ben Straub and published by Apress, is available here. All content is licensed under the Creative Commons Attribution Non Commercial Share Alike 3.0 license. Print versions of the book are available on Amazon.com.>
git-scm.com
2nd Edition (2014)
The entire Pro Git book, written by Scott Chacon and Ben Straub and published by Apress, is available here. All content is licensed under the Creative Commons Attribution Non Commercial Share Alike 3.0 license. Print versions of the book are available on Amazon.com.>
git-scm.com
Для людей естественно сопротивляться изменениям. Если Git не встретился вам, когда вы начинали работать с системами контроля версий, наверняка вы чувствуете себя комфортнее в системе Subversion (SVN).
Часто люди говорят, что Git слишком сложен для новичков. Тем не менее, я позволю себе не согласиться с этим.
В этом уроке я расскажу, как использовать Git в ваших проектах. Предположим, что вы создаете проект с нуля и хотите управлять им с помощью Git. Пройдясь по списку основных команд, вы получите представление о том, как разместить ваш код в облаке посредством GitHub.
В этой статье мы поговорим об основах Git – как инициализировать ваши проекты, как управлять новыми и существующими файлами, и как сохранить ваш код в облаке.
Мы не будем касаться относительно сложных частей Git, таких как ветвление, так как данный урок предназначен для начинающих.
На официальном сайте Git есть детальная информация об его установке на Linux, Mac и Windows. В нашем случае, мы будем использовать в целях демонстрации Ubuntu 13.04, где установим Git с помощью apt-get:
Давайте создадим каталог, внутри которого мы будем работать. В качестве альтернативы вы можете использовать Git для управления одним из существующих проектов; в таком случае вам не нужно будет создавать демо-каталог, как показано ниже:
mkdir my_git_project cd my_git_project
Первым этапом является инициализация Git в каталоге. Это можно сделать с помощью команды init, которая создает каталог .git, содержащий всю информацию, связанную с Git для вашего проекта.
Далее нам нужно указать имя и адрес электронной почты. Вы можете сделать это следующим образом, подставив свое имя и электронную почту:
git config --global user.name 'Shaumik' git config --global user.email '[email protected]' git config --global color.ui 'auto'
Важно отметить, что если вы не укажите свое имя и адрес электронной почты, то будут использованы значения по умолчанию. В нашем случае, значениями по умолчанию были бы имя пользователя donny и адрес электронной почты donny@ubuntu.
Кроме того, мы задаем для цвета пользовательского интерфейса значение auto, благодаря чему вывод команд Git будет иметь цветовую подсветку.
Префикс —global перед командами нужен для того, чтобы не вводить эти команды настроек в следующий раз, когда мы запустим проект Git в нашей системе.
Следующий шаг — это создание файлов в каталоге. Вы можете использовать, к примеру, текстовый редактор Vim. Заметьте, что если вы собираетесь добавить Git к уже существующему каталогу, вам не нужно выполнять этот шаг:
Теперь, когда у нас есть несколько файлов в нашем репозитории, давайте посмотрим, как Git обращается с ними. Для того, чтобы проверить текущий статус репозитория, нужно воспользоваться командой git status:
На данный момент у нас нет файлов для отслеживания с помощью Git. Нам необходимо добавить файлы конкретно в Git для того, чтобы указать Git, что нужно отслеживать.
Добавляем файлы при помощи команды add:
Снова проверив состояние репозитория, мы увидим, что был добавлен один файл:
Вы можете использовать git add рекурсивно, но будьте осторожны с этой командой. Существуют определенные файлы (например, скомпилированные файлы), которые обычно хранят вне репозитория Git.
Если вы будете использовать команду add рекурсивно, она добавит все такие файлы, если они существуют в вашем репозитории.
Предположим, вы добавили в Git файлы, которые не хотите отслеживать. В такой ситуации, нужно сказать Git, чтобы он перестал их отслеживать.
Но выполнение простой команды git rm удалит файл не только из Git, но также и из вашей локальной файловой системы! Чтобы
Git прекратил отслеживать файл, но при этом в вашей локальной системе сохранился сам файл, выполните следующую команду:
git rm --cached [file_name]
После того, как вы разместили свои файлы, можете закоммитить их в Git. Представьте, что коммит — это запечатление определенного момента, к которому вы можете вернуться, чтобы получить доступ к вашему репозиторию на этом этапе.
Вы можете привязывать к каждому коммиту сообщение, которое добавляется при помощи префикса -m:
git commit -m "My first commit"
Избегайте слишком общих сообщений типа «Исправлены ошибки». Если у вас есть трекер задач, вы можете добавлять сообщения в виде «Исправлена ошибка #234».
Хорошей практикой является использование имени ветки или имени функции в качестве префикса к сообщению коммита. Например, «Управление активами: добавлена функция для генерации PDF файлов активов» — это содержательное сообщение.
Git идентифицирует коммиты путем добавления длинного шестнадцатеричного числа к каждому коммиту. Как правило, не нужно копировать всю строку, для определения вашего коммита достаточно первых 5-6 символов.
Обратите внимание, что на скриншоте наш первый коммит определяется кодом 8dd76fc.
Теперь давайте изменим несколько файлов после нашего первого коммита. После их изменения, мы увидим, что в результате выполнения команды git status Git обнаружил изменения в файлах, которые он отслеживает:
Вы можете избежать использования этой команды, воспользовавшись префиксом -a для команды git commit, который добавит все изменения в отслеживаемые файлы.
Этот процесс, однако, очень опасен, так как может навредить проекту. Например, допустим, что вы открыли файл и изменили его по ошибке.
Если вы избирательно размещаете файлы, то заметите изменения в каждом файле. Но если вы добавите префикс -a к вашему коммиту, все файлы будут закоммичены, и вы не сможете выявить возможные ошибки.
После того, как вы разместили ваши файлы, можно приступить к коммиту. Я упоминал, что с каждым коммитом может быть ассоциировано сообщение, которое мы вводим с помощью префикса -m.
Однако существует возможность ввести сообщение в несколько строк, воспользовавшись командой git commit, которая открывает интерактивную форму для записи:
Чтобы просмотреть историю вашего проекта, вы можете выполнить следующую команду:
Для того чтобы просмотреть подробную информацию об определенном коммите и файлах, которые были изменены, выполните следующую команду:
где <hash> это шестнадцатеричное число, ассоциированное с коммитом. Так как данный урок рассчитан на новичков, мы не будем рассматривать, как вернуться назад к состоянию определенного коммита или как управлять ветками.
Теперь, когда вы узнали, как управлять кодом в вашей системе, пришло время разместить код в облаке.
Поскольку Git не имеет центрального сервера как Subversion, вам нужно добавить каждый источник для взаимодействия с другими. Вот тут возникает понятие remote. remote означает удаленную версию вашего репозитория.
Если вы хотите разместить код в облаке, вы можете создать проект на GitHub, GitLab или BitBucket и поместить уже существующий код в репозиторий.
В этом случае удаленный репозиторий в облаке будет выступать в роли удаленного для вашего локального репозитория. Для удобства, удаленный репозиторий, в котором у вас есть доступ на запись, называется origin.
После того, как вы создадите удаленный репозиторий, у вас появится возможность добавить удаленный origin и затем поместить код в origin:
git remote add origin https://github.com/sdaityari/my_git_project.git git push -u origin master
Git полон возможностей, и здесь мы рассмотрели лишь основные из них. Я надеюсь, что эта статья помогла вам начать работу с Git. Если вы столкнулись с какими-либо проблемами или у вас возникли вопросы, дайте нам знать об этом в комментариях ниже.
Данная публикация представляет собой перевод статьи «Git for Beginners» , подготовленной дружной командой проекта Интернет-технологии.ру
www.internet-technologies.ru
14.02.2017: Upd. Добавил в список две книги, за ссылки спасибо aRegius
15.02.2017: Upd. Исправил пару названий, спасибо Vestail;
некоторым курсам добавил названия; расширил список
24.02.2017: Upd. Добавил еще один туториал от RyPress (за ссылку спасибо Twissell)и еще несколько занятных руководств
26.02.2017: Upd. Добавил пару плейлистов Youtube
Если кто-то знаком с вышеперечисленными или впечатлен какими-либо другими курсами-ресурсами для изучения (в т.ч. и платными) — отпишитесь, пожалуйста.
Заранее благодарен.
toster.ru
Про git на русском:
githowto.com/ интерактивный курс по работе с git из консоли
habrahabr.ru/blogs/Git/106912/ «Почему git» + обсуждение
habrahabr.ru/blogs/development/68341/ «Git для переходящих с SVN» + обсуждение
habrahabr.ru/blogs/Git/75990/ «Командная работа в git» + обсуждение
progit.org/book/ru/ русский перевод книги «Pro Git» (переведено не до конца)
habrahabr.ru/blogs/Git/123111/ инструкция-шпаргалка для начинающих
los-t.livejournal.com/tag/git%20guts
lib.custis.ru/%D0%9B%D0%B8%D0%BD%D1%83%D1%81_%D0%A2%D0%BE%D1%80%D0%B2%D0%B0%D0%BB%D1%8C%D0%B4%D1%81_%D0%BE_GIT_%D0%BD%D0%B0_Google_Talks Линус Торвальдс о git
habrahabr.ru/blogs/Git/80909/ книга «Волшебство git»
Про git на английском:
книги
progit.org/book/ книга «Pro Git»
rutracker.org/forum/viewtopic.php?t=2808582 книга «Version Control with Git», 2009, O’Reilly
book.git-scm.com/ книга «Git Community Book»
rutracker.org/forum/viewtopic.php?t=2808843 книга «Pragmatic Version Control Using Git»
rutracker.org/forum/viewtopic.php?t=900767 книга «Git Internals»
www-cs-students.stanford.edu/~blynn/gitmagic/index.html книга «Git Magic»
видео
rutracker.org/forum/viewtopic.php?t=3520513 видеокурс, посвященный git. Довольно нескучный и с юмором.
www.youtube.com/watch?v=8dhZ9BXQgc4 лекция о git от Randal Schwartz
excess.org/article/2008/07/ogre-git-tutorial/ видеотуториал Git The Basics Tutorial
другое
ftp.newartisans.com/pub/git.from.bottom.up.pdf инструкция по принципу «снизу вверх», т.е. от низкоуровнего устройства git к верхнеуровневым командам. Автор утверждает, что так информация лучше воспринимается
ndpsoftware.com/git-cheatsheet.html хороший cheatsheet
whygitisbetterthanx.com/ преимущества git в сравнении с другими VCS
devcheatsheet.com/tag/git/ подборка cheatsheets
toster.ru
1st Edition (2009)
Switch to 2nd EditionThe entire Pro Git book, written by Scott Chacon and Ben Straub and published by Apress, is available here. All content is licensed under the Creative Commons Attribution Non Commercial Share Alike 3.0 license. Print versions of the book are available on Amazon.com.>
git-scm.com