Быстрый старт c GIT

Установка git:


// install
# apt-get install git-core

// config
# git config --global user.name "username"
# git config --global user.email mail@mail.com
# git config --global core.editor vim

// Если вы собираетесь начать использовать
// Git для существующего проекта, то вам 
// необходимо перейти в проектный каталог
// и в командной строке ввести
# git init

// Далее добавляем отдельно каждый файл
// и каждую папку (вложенное подтянется само)
# git add index.php some_folder1 some_folder2

// Создаем "голый" репозиторий на сервере
// для того чтобы видеть по сети/ssh
# git clone --bare /home/my_project/.git /git/my_project.git

// Теперь можем стянуть проект на удаленный сервер
// В текущей директории появится папка с проектом
# git clone root@www.my-site.com:/git/my_project.git

Подключение новых репозиториев

От пользователя Git:


$sudo -u git mkdir new_project.git
$sudo -u git init --bare

Далее от какого-нибудь пользователя:


$mkdir new_project
$git init
$git remote add some_name https://github.com/rep
$git pull
$git push origin master

Работа с несколькими удаленными репозиториями

Читать книгу по удаленным репозиториям


# проверка, какие удаленные серверы настроены:
# выводит только короткие названия серверов
$git remote

# вывод подробной информации по удаленным хранилищам
# название, урл, комманда
$git remote -v

# для добавления новых удаленных репозиториев:
$git remote add [сокращение] [url]

# После добавления репозитория, можно 
# вытянуть всю информацию из нового репозитория,
# коммандой:
$git fetch [сокращение]

# fetch только скачивает состояние удаленной ветки
# чтобы применить все изменения, необходимо сделать merge

# Подробная инфа по удаленной ветке
$git remote show origin
Возникла ошибка, при создании собственного репозитория, и последующего его использования
remote: error: insufficient permission for adding an object to repository database ./objects remote: fatal: failed to write object
Когда у пользователя нет доступа, чтоб сделать push. Для решения создал новую группу, которой разрешил запись в проект, и добавил всех кому нужно пушить в эту группу. ! Принадлежность пользователя к группе изменяется только после переподключиния (если по ssh)

cd repository.git

sudo chmod -R g+ws *
sudo chgrp -R mygroup *

git repo-config core.sharedRepository true

Документация

о GIT на русском (BOOK)

Пошаговая инструкция

Софт

gitk - Распространяется с git, очень удобная штука, для просмотра логов (git log)

Список часто используемых комманд

Работа с локальными файлами

git add Добавление новых файлов/директорий в проект
git commit Заливаем изменения в репозиторий
git commit --amend Повтор последнего коммита (можно изменить комментарий к комиту, добавить файл, который забыли закомитить)
git reset HEAD Отменяет индексацию файла (если вы добавили не нужный в данном комите файл)
git checkout -- Восстанавливает файл из репозитория, убирает изменения

Работа с удаленными репозиториями

git remote Просмотреть какие удалённые серверы у вас уже настроены
git remote -v Посмотреть какому URL соответствует сокращённое именя в Git
git remote add [сокращение] [url] Добавить новый удалённый Git-репозиторий под именем-сокращением, к которому будет проще обращаться
git fetch [remote-name] Для получения данных из удалённых проектов. Данная команда связывается с указанным удалённым проектом и забирает все те данные проекта, которых у вас ещё нет. Важно отметить, что команда fetch забирает данные в ваш локальный репозиторий, но не сливает их с какими-либо вашими наработками, и не модифицирует то, над чем вы работаете в данный момент.
git pull Как правило извлекает (fetch) данные с сервера, с которого вы изначально склонировали, и автоматически пытается слить (merge) их с кодом, над которым вы в данный момент работаете.
git push origin master Когда ваш проект достигает момента, когда вы хотите поделиться наработками, вам необходимо отправить (push) их в главный репозиторий. Команда для этого действия простая: git push [удал. сервер] [ветка].
Написано 10 февраля 2012 в 17:07

0 комментариев


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

Войдите через соц.сети

или через почту здесь