четверг, 25 июня 2015 г.

Git для новичнов. Работа на двух компьютерах.

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

План такой:
  • Создать на одном компьютере папку с файлами проекта
  • Передать их на github
  • Загрузить с github на другой компьютер

Теперь можно работать на любом компьютере: перед началом работы загружаем изменения проекта с github к себе, после окончания работы - загружаем сделанные изменения на github.
Как же быть с базой данных? - спросите вы. База данных будет синхронизироваться с помощью миграций.
Приступим.
На одном компьютере создаем проект. У меня это, конечно, мой проект о котором я тут и пишу: создание каталога товаров в Yii2. Он находится в виртуальной машине в каталоге /var/www/yii2/.
Устанавливаем git. Для windows - https://git-scm.com/download/win Для linux:
https://git-scm.com/book/ru/v1/Введение-Установка-Git#Установка-в-Linux
Переходим в папку проекта: если вы работаете в windows открываем папку в файл-менеджере, если в linux - выполняем команду:
cd /var/www/yii2/                                        
Теперь надо подготовится к созданию репозитория git: 
Github использует файл README.txt из корня проекта для описания проекта (отображает содержимое файла на главной станице). Создадим пустой файл README.txt в папке /var/www/yii2/ и напишем туда описание: у меня это "Этот проект я начал для изучения PHP фреймворка Yii2. В нем я создаю простой каталог товаров, а как я это делаю — описываю в блоге: http://psyhos.blogspot.com/"и сохраняем.
Git будет следить за изменениями всех файлов в данном каталоге, но правильным будет исключить некоторые файлы из репозитория. Для этого нужно создать файл .gitignore в корне нашей папке проекта. в нем можно указать, какие файлы не попадут в git у меня содержимое файла /var/www/yii2/.gitignore такое:

$ cat .gitignore
Yii 2.clpprj
/basic/config/db.php

то есть я исключил файл проекта codelobster и файл подключения к базе данных. В папке /var/www/yii2/basic тоже есть .gitignore созданный при установке yii2. Там, помимо прочего, исключается папка vendor, которая скачивается через composer.
Теперь можно создавать репозиторий git. Для windows сначала надо открыть окно git - можно щелкнуть правой кнопкой мыши в папке и выбрать Git Bash (когда установите git этот пункт появляется в контекстном меню). Откроется черное окно командной строки git, такое как на рисунке:


Для linux этот шаг пропускаем. В linux просто остаемся в терминале в нужной папке. Далее для windows и для linux одинаково.
Настраиваем git:

git config --global user.name "ваше имя"    
git config --global user.email "ваша почта" 
git config --global core.autocrlf true      
git config --global core.safecrlf true      

Команда
git init                                                                    
создает репозиторий git. это тоже папка с именем .git в которой хранятся все изменения. Вот как теперь выглядит моя папке проекта в windows если включить отображение скрытых файлов:















Создаем первый коммит, то есть первое сохранение в git
git commit -a -m 'Initial commit'                                   
git - всегда первое слово при работе с git-ом;
commit - создать "сохранение" или коммит;
-а - добавить все файлы для коммита;
-m 'Сообщение' - комментарий для коммита;
Теперь можно загрузить это сохранение на github. Идем на https://github.com/ и создаем себе аккаунт. Теперь на github создаем пустой репозиторий.
Теперь надо подключить свой github репозиторий к своему локальному. Делается это командой add:
git add yii2_gh https://github.com/Psyhos/Catalog_Yii2
add - добавить удаленный репозиторий
yii2_gh - псевдоним для удаленного репозиротия
https://github.com/Psyhos/Catalog_Yii2 - путь к вашему github аккаунту
Когда удаленный репозиторий подключен, можно загрузить в него ваш проект:
git  push yii2_gh master
push - выгрузить данные в удаленный репозиторий
yii2_gh - псевдоним вашего удаленного репозитория (см. предыдущую команду)
master - ветка, которую вы выгружаете (master создается сразу)
Возможно попросит ввести ваши имя пользователя и пароль от github аккаунта.
Можно проверить свой github - там должны появится файлы вашего проекта!

Теперь переходим на другой компьютер.

Устанавливаем git.
Создаем папку для проекта. В этой папке инициализируем git репозиторий, как делали на первом компьютере:
Команда
git init                                                                    
Теперь клонируем к себе проект с github:
git clone https://github.com/Psyhos/Catalog_Yii2 .         
clone - команда клонировать;
https://github.com/Psyhos/Catalog_Yii2 - адрес репозитория;
. - локальная папка, куда загрузится проект. Точка = текущая папка;
Псевдоним этого удаленного репозитория будет origin.

Теперь с любого из этих компьютеров можно работать с проектом. Вначале работы делаем:
git  pull [псевдоним удаленного репозитория]                 
В конце работы - 
git commit -a -m '[коментарий к коммиту]'                          
и
git  push [псевдоним удаленного репозитория] master    

Стоит прочитать:
https://git-scm.com/book/ru/v1


Продолжение следует


Комментариев нет:

Отправить комментарий