Git для новичков (статья)
Работа с git для начинающих Наверное не все знают, что такое git и с чем его едят. git – это распределенная система контроля версий. Основные ее преимущества, лично для меня, распределенность и использование бинарных дифов, что упрощает работу с системой нескольких пользователей одновременно, и упрощает хранение бинарных файлов, ресурсов. git используется во многих крупных проектах: Linux kernel, KDE и многих других. Изначально git написал Linus Torvalds. Генерация ключа: Для того чтобы вы имели доступ до репозитария, необходимо сгенерировать ключ. Для этого в консоли git пишем: Код:
$ ssh-keygen -t rsa -C "tekkub@gmail.com" - Пишем это в консоле git (только подставить свой адресс) http://help.github.com/images/add_key.png Создание нового репозитория Создание нового репозитория – это наверное первая из задач, с которой сталкивается любой разработчик. К данной проблеме есть несколько подходов. Во-первых, можно использовать только локальный репозиторий, но смысла особого я в этом не вижу. Во-вторых, можно создать открытый репозиторий, с которым смогут работать другие люди. Рассмотрим этот вариант. Предположим, что у вас есть сервер example.com и ваша рабочая машинка. Для начала вам необходимо установить git. Сделать это можно как вручную скомпилировав его из исходных кодов, так и установив с помощью менеджера пакетов. Будем считать что с этой операцией вы уже справились. Далее вам надо создать репозиторий. Предположим что вы будете хранить все git-репозитории в /var/git: Код:
cd /var/git Теперь идем на вашу рабочую машину и пишем: Код:
git init Код:
Counting objects: 3, done. Разумеется, после создания репозитория разумно узнать “а как же получить эти данные на свой компьютер?”. Для данной операции используется команда clone. Она создает полную копию удаленного репозитория у вас. Под полной копией понимается именно полная копия, со всеми ветками, удаленными файлами и т.д. Код:
git clone ssh://username@example.com/var/git/имя-репозитория Обновление данных С таким локальным репозиторием можно работать долгое время, однако, когда-то у вас все же возникнет необходимость передать сделанные вами изменения в удаленный репозиторий, чтобы результатами вашего труда могли воспользоваться другие участники разработки, и получить из удаленного репозитория новую версию. Для этого служат команды pull и push. Код:
git pull Код:
git push Код:
git push --tags Для базовой работы с любой системой контроля версий требуется не особенно большой набор операций: добавление файла в репозиторий, удаление файла из репозитория, комит изменений в репозиторий, отмена незакомиченных изменений и получение списка изменений. Добавление списка файлов в комит: Код:
git add file1 file2 ... fileN Код:
git add -a Код:
git rm file1 file2 ... fileN Код:
git rm -f file1 file2 ... fileN Код:
git commit Код:
git commit -a Код:
git reset --hard Код:
git diff Рано или поздно в любом проекте возникает ситуация, когда требуется заморозить изменения, но продолжать работать, а на замороженные изменения накладывать только баг-фиксы. Для этой цели служат ветви (branch) В гите можно создать ветку от любого места. Создание удаленной ветки дело не хитрое, но в первый раз не так просто сделать все правильно. Весь процесс делиться на несколько этапов * создание удаленной ветки * создание аналогичной локальной ветки * переключение на созданную ветку Процесс создания ветки на удаленном сервере 1. Создание удаленной ветки Код:
git push origin origin:refs/heads/new_branch Код:
git pull origin Код:
git branch -r Код:
git checkout --track -b new_branch origin/new_branch Код:
git pull Код:
git push origin :heads/new_branch Для открытия и закрепление новой ветки с другого места нужно выполнить два шага 1. Открыть удаленные ветки Код:
git branch -r Код:
git checkout --track -b new_branch origin/new_branch Как правило, кроме веток разработчики используют теги – чтобы запомнить состояние кода в какой-то момент. Тег – это своеобразный слепок, точно идентифицирующий состояние кода. Гит умеет работать с подписанными GPG тегами и с неподписанными. Здесь я рассмотрю только неподписанные теги. Для создания такого тега необходимо выполнить команду: Код:
git tag <tag name> Код:
git tag -d <tag name> Код:
git push --tags Код:
git fetch origin tag <tag_name> Настройка git Для ускорения некоторых операций и увеличения удобства работы можно провести пару настроек: Настройка цветного вывода: git config --global color.ui "auto" Настройка имени пользователя и почтового адреса (между прочим, это хороший тон): Код:
git config user.name "FirstName LastName" Код:
git config --global diff.renamelimit "0" Git – очень мощная и удобная система контроля версий. Для нее существует несколько GUI утилит, которые могут облегчить работу, несколько веб интерфейсов для мониторинга текущего состояния. В последнее время все большее кол-во проектов переходят на использование git, и это показатель того, что git успешно развивается и соответствует последним требованиям в области систем контроля версий. Большое кол-во документации по использованию git можно найти в сети, в том числе и на официальном сайте Продолжение следует... Источник _http://blog.nsws.ru/rabota-s-git-dlya-nachinayushhix.html |
|
Еще одно руководство по git на русском языке.
http://freesource.info/wiki/RuslanHi...rmanual?v=b7s& |
Что за проблема с гитом? При попытке обновить пишет:
fatal: git status --porcelain failed Делаю git clean -f -x -d и git reset --hard, проходят команды нормально, делаю git gc - ошибка: rm: cannot unlink `pack-99155867d32880251218103923abfc69f6e2ef2a.pack': Permission denied Репозитория локальный, изменений много, терять не хочу, но и без обновления остаться тоже не улыбается, что можно сделать? |
unlink=удалить, что-то с правами доступа случилось?
|
Нашёл, удалил вручную. git gc теперь работает нормально, но обновляться по прежнему не даёт с ошибкой fatal: git status --porcelain failed =(
Какие проблемы досутпа на винде по админом??? =( |
какая винда ?
собственно можно попробовать заново установить права на папку и проверить на всякий случай владельца, и на всякий случай принудительно стать владельцем этой папки ну и атрибуты файлов можно проверить -) мало ли что |
Win7 - перекачал уже всё =)
|
Нужна помощь, разбираюсь в гит, вроде всё понятно кроме как добавления уже существующих файлов в гит, что я делаю...
В папке находится исходный код, в гит я пишу Код:
$ cd E:/folder_project1 Код:
$ git push origin master |
|
Если консолью добавлять файл, то сначала создаём файлы.
Потом "git add ." Потом "git commit -a -m "Dеscription"" И только потом "git push -u origin master" |
Цитата:
Основное правило таково - сделал изменения, закоммитил в локальный репо - запушил в сеть. |
Вложений: 1
Вот еще так на заметку Git cheat sheet
|
что нада сделать что бы открылось окно :
http://help.github.com/images/add_key.png? |
Account Settings->SSH Public Keys.
|
вот в который раз сталкиваюсь с такой ситуацией. например вот репозиторий JavaEmu. делаю pull (в черепахе GIT Sync, затем кнопка pull слева внизу), оно мне выдает окошко с логом, в котором:
Код:
git.exe pull -v "origin" и второй вопрос: как посмотреть урл репозитория? ну конечно кроме как руками залезть в файл projects\git\stormcore.git\.git\config. как это сделать из черепахи? |
Цитата:
|
хмм, возможно. установлен microsoft essentials... или как там его...
|
где-то читал что можно редактировать уже закоммиченые изменения (коммиты) на сайт Знает кто эти команды?:mda:
|
|
люди как переключится на русский язык?? что-то я не могу найти!
|
Теперь гит хаб поддерживает только английский язык.
|
Текущее время: 04:05. Часовой пояс GMT +3. |
ru-mangos.ru - Русское сообщество MaNGOS