Руководства, Инструкции, Бланки

Tortoisegit руководство img-1

Tortoisegit руководство

Категория: Руководства

Описание

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 <file>:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

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

Перевод статьи « Git for Beginners » был подготовлен дружной командой проекта Сайтостроение от А до Я .

01 июня 2014 в 14:01

Другие статьи

Блог студии креограф - Git - распределенная система управления версиями

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

http://tortoisegit.googlecode.com/files/TortoiseGit-1.3.6.0-32bit.msi - удобный клиент git для windows.
http://code.google.com/p/tortoisegit/wiki/HOWTO_CentralServerWindowsXP - краткое руководство по настройке сервера и клиента tortoisegit на windows. Очень понятно написано в каком порядке, что ставить на сервер и на клиента. Ниже приведен вольный перевод, с учетом http://www.timdavis.com.au/git/setting-up-a-msysgit-server-with-copssh-on-windows/, в частности ключи генерируются как описано в этом руководстве.

http://pyplanet.ru/tag/EGit/ - установка git на freebsd + клиент на eclipse egit.
http://wiki.eclipse.org/EGit/User_Guide - руководство по использованию egit плагина для eclipse.
http://svdev.ru/the-git-community-book/ - частичный перевод руководства http://book.git-scm.com/.

Установка сервер + клиент на windows. На сервере:
1. поставить msysgit 1.7.0.2 (http://msysgit.googlecode.com/files/Git-1.7.0.2-preview20100309.exe) в папку c:\ssh
при установке выбрать: 1) Git только из командной строки windows, 2) не OpenSSH, а plink; если tortoisegit уже стоит, то указать к нему путь.
2. поставить CopSSH 3.0.3 (http://ignum.dl.sourceforge.net/project/sereds/Copssh/3.0.3/Copssh_3.0.3_Installer.zip, и патч http://ignum.dl.sourceforge.net/project/sereds/Copssh/3.0.3/icwbase-2.0.3-patch-100.zip). Все по умолчанию.
3. В файле C:\Program Files\ICW\etc\sshd_config надо поменять:
3.1 #PasswordAuthentication yes
на
PasswordAuthentication no
3.2 #Port 22
на
Port 1234
или любой другой
3.3 Раскомментировать строки RSAAuthentication и PublickeyAuthentication.
В файле ssh_config также надо поменять Port 22 на нужный номер.
4. Панель управления \ Учетные записи пользователей \ Создание учетной записи: надо создать всех пользователей, которые будут иметь доступ по SSH. Пользователи не должны быть администраторами.
5. Активизировать новых пользователей в CopSSH: Пуск > Программы > Copssh > "Activate a user", запомнить пароли. Убрать галочку напротив Create keys for public key authentication.
6. Сгенерировать ключи с помощью программы puttygen.exe. Напротив Number of bits in a generated key: написать 4096. Сгенерировать ключ, скопипайстить его в файл c:\SSH\Home\ \.ssh\authorized_keys. Сохранить Private key в файл private_key.ppk в тойже папке.
Проверить соединение спомощью putty.exe в настройках ssh/Auth указать файл private_key.ppk, соединится с сервером.
7. Создать репозитории, например: C:\SeeDriveRepos\Repo1.git и D:\DeeDriveRepos\Repo2.git.
Правый щелчок на каждой родительской папке (например, C:\SeeDriveRepos) > Общий доступ и безопасность. > Доступ > отметить: "открыть общий доступ к этой папке" и "разрешить изменение файлов по сети".
Если вы работаете под админиской учетной записью с репозиторием локально, т.е. с локальным клоном на этом же сервере, то HEADS файл будет заблокирован и не админы не смогут внести изменения в этот HEADS файл. Как вариант можно всех пользователей сделать админами и т.д.
8. Чтобы ssh сервер смог найти EXE-шники git'а надо скопировать файлы files git.exe, git-receive-pack.exe, git-upload-archive.exe и git-upload-pack.exe из C:\Program Files\Git\libexec\git-core в C:\SSH\Bin.

На клиенте нужна следующая информация:
1. Файл с private key <user>.ppk
2. пароль
3. <user> - имя пользователя
4. <server> - имя сервера.
Делать надо вот, что
1. поставить msysgit 1.7.0.2 (http://msysgit.googlecode.com/files/Git-1.7.0.2-preview20100309.exe)
при установке выбрать: 1) Git только из командной строки windows, 2) не OpenSSH, а plink; если tortoisegit уже стоит, то указать к нему путь.
2. установить TortoiseGit: http://tortoisegit.googlecode.com/files/TortoiseGit-1.3.6.0-32bit.msi. После установки в Settings > Network > SSH:
SSH Client = C:\Program Files\TortoiseGit\bin\TortoisePlink.exe
3. Запустить C:\Program Files\TortoiseGit\bin\puttygen.exe:
Кнопка "Load" > выбрать <user>. Сохранить новый private key <user>.ppk. Закрыть программу.
Запустить C:\Program Files\TortoiseGit\bin\Pageant.exe, добавить новый файл <user>.ppk, ввести пароль.

Замечание: при каждой перезагрузки надо повторять: "Запустить C:\Program Files\TortoiseGit\bin\Pageant.exe, добавить новый файл <user>.ppk, ввести пароль".
4. Клонировать репозитории с сервера. Найти подходящее место в проводнике, правый щелчок > Git Clone:
URL = <user>@<server>:<port>/c:/SeeDriveRepos/Repo1

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

Похожие записи
  • git fatal: confused by unstable object source data
  • Скрипт на perl'e для заливки сайта из git-репозитория
  • Создание и синхронизация удаленной ветки в git
  • Команды git
  • Перенос репозитория из рабочей папки windows на linux-сервер по-быстрому

Глава 4

Глава 4. Руководство по ежедневному использованию

В этом документе описано использование TortoiseSVN, как оно происходит изо дня в день. Это не введение в системы управления версиями, и не введение в Subversion (SVN). Эта глава более похожа на то, к чему вы можете обратиться, когда вы приблизительно знаете, что нужно сделать, но не помните точно, как это делается.

Если вам нужно введение в управление версиями с использованием Subversion, тогда мы рекомендуем прочитать чудесную книгу [1]. Управление версиями в Subversion .

Работа над этим документом продолжается, также как и над TortoiseSVN и Subversion. Если вы нашли какие-нибудь ошибки, пожалуйста, сообщите о них в список рассылки, чтобы мы могли обновить документацию. Некоторые копии экранов в Руководстве по ежедневному использованию могут не соответствовать текущему состоянию программы. Пожалуйста, простите нас: мы работаем над TortoiseSVN в своё свободное время.

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

У вас уже должен быть установлен TortoiseSVN.

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

Вы должны знать основы Subversion.

Вы должны установить и настроить сервер и/или иметь доступ к хранилищу Subversion.

Основные Возможности

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

Пометки на значках

Рисунок 4.2. Контекстное меню для папки, находящейся под управлением версиями


Все команды TortoiseSVN вызываются из контекстного меню Проводника Windows. Большинство из них видно непосредственно, когда вы щелкаете правой клавишей мыши на файле или папке. Список доступных команд зависит от того, находятся ли файл, папка или их родительская папка под управлением версиями, или нет. Вы также можете увидеть меню TortoiseSVN как часть меню "Файл" Проводника.

Некоторые редко используемые команды доступны только в расширенном контекстном меню. Для вызова расширенного контекстного меню нажмите и держите клавишу Shift при правом щелчке мыши .

В некоторых случаях вы можете видеть в меню несколько пунктов TortoiseSVN. Это не ошибка!

Рисунок 4.3. Меню "Файл" Проводника для ярлыка в версированной папке


Этот пример для неверсированного ярлыка внутри версированной папки, и меню "Файл" Проводника содержит три вхождения TortoiseSVN. Одно из них для папки, одно для ярлыка и одно для объекта, на который указывает ярлык. Для того, чтобы можно было отличить их друг от друга, значки имеют пометку в нижнем правом углу, показывающую, к какому объекту относится это вхождение меню: к файлу, к папке, к ярлыку или к нескольким выделенным элементам.

Перетаскивание мышью

Рисунок 4.4. Меню при перетаскивании правой клавишей мыши для папки под управлением версиями


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

Общие клавиатурные сокращения

У некоторых общих операций есть хорошо известные клавиатурные сокращения Windows, но они не появляются на кнопках или в меню. Если у вас не получается выполнить что-то очевидное, вроде обновления вида, посмотрите здесь.

Конечно же, справка

Обновление текущего вида. Это, наверное, одна из самых полезных одноклавишных команд. Например: в Проводнике она обновляет пометки на значках в вашей рабочей копии; в диалоге фиксации она перепросматривает рабочую копию для обнаружения того, что ещё можно зафиксировать; в диалоге 'Журнал ревизий' она вновь связывается с хранилищем для проверки последних изменений.

Выделить все. Она может быть использована, если вы получили сообщение об ошибке, и желаете скопировать его и вставить в письмо электронной почты. Используйте Ctrl-A для выбора сообщения об ошибке, а затем.

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

Аутентификация

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

Рисунок 4.5. Диалог аутентификации


Введите ваше имя пользователя и пароль. При помощи флажка можно сделать так, чтобы эти данные сохранялись TortoiseSVN в папке по умолчанию Subversion: %APPDATA%\Subversion\auth в трёх подпапках:

svn.simple содержит учётные данные для базовой аутентификации (имя пользователя/пароль). Обратите внимание: эти пароли хранятся при помощи WinCrypt API, а не в виде простого текста.

svn.ssl.server содержит серверные сертификаты SSL.

svn.username содержит учётные данные для аутентификации только по имени пользователя (без пароля).

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

Некоторым людям хочется, чтобы данные об аутентификации удалялись когда они выходят из Windows или при выключении. Это можно сделать с помощью скрипта выключения удалив директорию %APPDATA%\Subversion\auth. Например:

Описание того как установить такие скрипты вы можете найти в http://www.windows-help-central.com/windows-shutdown-script.html .

За более полной информацией о том, как настроить ваш сервер для аутентификации и управления доступом, обращайтесь к «Доступ к хранилищу»

Разворачивание окон

Многим диалогам TortoiseSVN необходимо показывать большой объём информации, но довольно часто бывает полезно развернуть окно только по высоте, или только по ширине, вместо того, чтобы разворачивать его на весь экран. Для удобства эти функции реализованы путём быстрого вызова через стандартную кнопку Развернуть. Щёлкните по ней средней кнопкой мыши для разворачивания по вертикали, и правой кнопкой - для разворачивания по горизонтали.

[1] В других частях этого документа эта книга фигурирует как "Книга о Subversion". Она доступна на английском, русском и некоторых других языках - прим. переводчика

Pro Git: Инструменты для работы с Git - TortoiseGit

Теперь будем рассматривать комплексные утилиты оболочки работы с Git. Начнем TortoiseGit.

Скачиваем сам дистриб

Я выбрал под свою разрядность вы выбираете под свою.

И если надо там же можно скачать языковый пакет русского языка для TortoiseGit

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

Жмем старт и идем в настройки

Далее идем в раздел Git и видим предупреждение на враждебном нам буржуйском языке

Что в переводе означает

Это нам говорят про это. Ставим галку чтобы нам это больше не показывали. Мы и так про это знаем.

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

На скрине ниже я показал этот пункт и весь раскрытый пункт контекстного меню TortoiseGit

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

Из всего этого добра мне понравилось красивый просмотр логов (как раз пункт меню который я оставил):

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

И так сравним версии файла из коммита 2 и коммита 4. На коммите 2 делаем правый клик мышью

Далее видим скрин что ниже и убираем там все эти нули. Если не убрать то вылетит ошибка и жмем раскрывающийся список RefBrowse

Далее видим это и выбираем четвертый коммит

Жмем Compare revisions и видим сравнение файла test.txt из коммитов 2 и 4

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

Цель этого была просто познакомить с TortoiseGit.