Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/51: Рейтинг темы: голосов - 51, средняя оценка - 4.86
reisal78
894 / 645 / 218
Регистрация: 28.04.2013
Сообщений: 1,845
1

Git: инструкция по применению

25.01.2016, 14:52. Просмотров 9692. Ответов 0
Метки нет (Все метки)

Git
https://git-scm.com/

Git (произн. «гит») — распределённая система управления версиями.

Предисловие

Примеры будут под Windows. Линуксойды в большинстве своем опытные пользователи и разжевывать элементарные вещи им не нужно.

Зачем и когда использовать?
  • Вы делаете какой то проект. В один момент вы захотели сделать какие то глобальные изменения. С помощью git'а можно создать отдельную ветку, в ней внести изменения, если в будущем они вас не устроят можно вернуться (переключаться) к предыдущей версии.
  • Над одним проектом работают несколько разработчиков. Создается общий репозиторий и разработчики добавляют в него свой код. Когда нужно разработчик обновляет свой локальный проект получая обновления от других разработчиков.
  • Вы работаете над проектом с разных компьютеров. Git позволяет синхронизировать код на разных компьютерах.

Установка и настройка

Нужно скачать и установить дистрибутив под вашу операционную систему.
Нужно задать в переменной PATH путь к папке /Git/bin. (если этого не сделать, то при работе с Git из командной строки нужно будет указывать полный путь к нему, иначе будет появляться сообщение "не является внутренней или внешней командой").

Общее

У git'a два типа репозиториев - локальный и глобальный.
Локальный - создается в папке вашего проекта в папке .git
Глобальный - находится на удаленном сервере.
Локальный создается всегда, глобальный в некоторых случаях может не подключаться (но как правило подключается)

Создание проекта.

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

Проект с нуля

Создать папку для проекта
Bash
1
mkdir /path/to/your/project
Перейти в созданную папку
Bash
1
cd /path/to/your/project
Создать локальный репозиторий
Bash
1
git init
Создать структуру проекта, и открыть в IDE.
*Так делать не совсем удобно.

Более удобный вариант
Создаете в IDE проект.
Git: инструкция по применению

Bash
1
cd /path/to/your/project
Bash
1
git init
Или (для IDEA) VCS -> Enable Version Control Integration -> Git -> OK (Как в других - не знаю)

Но в данном случае созданный проект у нас уже не пустой. в нем есть файл pom.xml (Maven) и файл .iml и файлы в папке .idea
helloworld.iml и .idea - это настройки проекта для конкретной IDE. Помещать их в репозиторий не стоит, т.к. не далеко не факт что другие разработчики будут пользоваться такой же IDE как и вы. (У других IDE тоже есть какие то конфигурационные файлы их тоже в репозитории не добавляют)

А вот файл pom.xml нам нужно будет добавить, и, если есть, и другие полезные файлы.
Bash
1
git add pom.xml
(Для IDEA) Выделить файл -> VCS -> Git -> ADD или (Ctrl + Alt + A)

ВАЖНО! После данной команды файл еще не попадет в локальный репозиторий. А только добавиться в список тех файлов которые поместятся в репозиторий при получении соответствующей команды.

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

Добавить проект в локальный репозиторий

На прошлом шаге, мы создали проект. Активировали локальный git репозиторий. И добавили существующие файлы в список файлов, помещаемых в локальный репозиторий.

Т.е создавая новый файл в проекте, его нужно добавлять в этот список командой add. (IDEA спрашивает добавлять в список или нет при создании каждого файла).

Что бы файлы поместились в локальный репозиторий - нужно сделать commit.
Bash
1
git commit -m 'any comments'
(Для IDEA) VCS -> Commit Changes или Ctrl + K

По сути: Создали новые классы, добавили изменения в существующие - делаем Commit сохраняя изменения.
После commita, можно сделать новую ветку (branch). Поработать в ней. Сделать коммит. Создать еще одну ветку, в ней поработать. Сделать commit. Потом вернуться к первой ветке ну и т.д.

Работу с ветвлением описывать не буду. Читайте учебник

Использование удаленного репозитория
  • Сначала нужно создать этот самый удаленный репозиторий.
  • Заходите на bitbucket.org или github.com
  • Регистрируетесь.
  • Создаете удаленный репозиторий. (Имя может отличаться от того как вы назвали свой проект локально)/
  • После создания репозитория ищете ссылку на него. Она должна выглядеть примерно так: https://github.com/reisal78/HelloWorld.git
  • И выполняем привязку нашего локально репозитория к глобальному.
    Bash
    1
    
    git remote add origin https://github.com/reisal78/HelloWorld.git
    Как делать в IDE - не знаю. (Делаю через командную строку)
  • Для того, что бы скопировать локальный репозиторий в глобальных используется команда push
    Bash
    1
    
    git push -u origin master

И еще раз...
Для того что бы выложить код в удаленный репозиторий вам нужно.
  • Создать проект
  • Создать локальный репозиторий
  • Добавить нужные файлы проекта в список помещаемых в локальный репозиторий
  • Сделать commit этого списка.
  • Привязать локальный репозиторий к удаленному.
  • Сделать push в глобальный репозиторий.

Использование чужих репозиториев
  • Находите нужный репозиторий, ищите его адрес. https://github.com/reisal78/HelloWorld.git
  • Переходите в папку с проектами и выполняете клонирование
    Bash
    1
    
    git clone https://github.com/reisal78/HelloWorld.git
    (Для IDEA) VCS -> Checkout from Version Control -> Git
При таком клонировании вы не сможете делать правки в глобальном репозитории (за исключением того, если вы хозяин этого репозитория, или хозяин вашему аккаунту не предоставил соответсвующие права)
Т.е вы можете изменять код, делать коммиты в локальный репозиторий, а при попытке пуша - будет ошибка.

Для того, что бы была возможность внести изменения в чужой репозиторий, нужно:
  • Сделать Fork (копию) этого проекта, в свой удаленный репозиторий.
  • Склонировать эту копию.
  • Внести изменения.
  • Сделать коммит.
  • Сделать пуш.
  • И сделать Pull. (Создать Pull запрос) (Можно сделать на сайте)
Этот пул запрос появится у хозяина репозитория, с которого вы делали форк. И хозяин может принять ваши правки, а может и не принять =)

Игнорирование служебных файлов.

Довольно часто требуется исключить из репозитория какие то файлы. Например: файл с паролями к БД. Или файлы конфигурации IDE.

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

А вот конфигурационные файлы IDE вам придется игнорировать в каждом проекте. Что бы для каждого проекта не создавать .gitignore можно сделать так:
  • В домашней папке пользователя (для windows) C:\Users\UserName (UserName заменить на ваше) создаем файл с именем .gitexcludes
  • Внутри него с таким же синтаксисом как в .gitignore указываем что игнорировать.
    Пример для IDEA
    Bash
    1
    2
    
    .idea
    *.iml
  • Там же создаем (если его нет) файл .gitconfig и добавляем в него:
    Bash
    1
    2
    
    [core]
        excludesfile = ~/.gitexcludes
  • Теперь ваши конфигурационные файлы будут игнорироваться гитом.

Для Linux
Bash
1
$ nano ~/.gitexcludes
В файл добавим
.idea
*.iml
Bash
1
$ git config --global core.excludesfile ~/.gitexcludes
Послесловие

В IDEA есть плагины для более удобной работы с github (входит по умолчанию) и с bitbucket (нужно поискать, давно не поддерживается, но есть рабочая фан версия). Те способы что я описал универсальны для всех репозиториев, хоть и больше действий требуют.

Например что бы закинуть ваш проект на гитхаб в IDEA в меня VCS достаточно выбрать share project on github. Он сам создаст и локальный репозитрий, и глобальный, сам закоммитит и запушит за одно действие. Но лучше иметь представление как это все сделать ручками, ведь не факт что на работе вы будете пользоваться гитхабом, а не каким нибудь "кустарным" репозиторием в локальной сети.
13
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.01.2016, 14:52
Ответы с готовыми решениями:

fatal: Not a git repository (or any of the parent directories): .git
Подключил EGit для разработки командных проектов ... Теперь при запуске...

Git error push
Здравствуйте. Не нашёл соответствующей ветки, поэтому кинул сюда. Посоветуйте ...

Upgrade Jboss3.2.3+Jetty4-->Jetty5 (инструкция)
http://xytopok.net/viewtopic.php?t=29

Git, GitHub, bitbucket - краткие инструкции для чайника
Попробую "на пальцах" объяснить как это все работает. Много подробностей будет...

Netbeans и Git
Привет. Открыл для себя поддержку Git в Netbeans. Для меня вопросы...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.01.2016, 14:52

Silverhof SSB-751 Инструкция по применению
уважаемые, есть вот такой калькулятор в нём 240 функции пользуюсь только...

fatal not a git repository (or any of the parent directories) .git
Вылетает такая ошибка, на всех проектах: fatal not a git repository (or any of...

Чем отличается git merge От git pull
в обоих случаях я забираю изменения в свою ветку. в чем различие?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Закрытая тема Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru