|
Прочая документация Помощь, книги, инструкции, описания |
|
Опции темы | Поиск в этой теме | Опции просмотра |
30.04.2010, 08:51 | #1 |
RuDB Dev
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
|
Git для новичков (статья)
Работа с git для начинающих Наверное не все знают, что такое git и с чем его едят. git – это распределенная система контроля версий. Основные ее преимущества, лично для меня, распределенность и использование бинарных дифов, что упрощает работу с системой нескольких пользователей одновременно, и упрощает хранение бинарных файлов, ресурсов. git используется во многих крупных проектах: Linux kernel, KDE и многих других. Изначально git написал Linus Torvalds. Генерация ключа: Для того чтобы вы имели доступ до репозитария, необходимо сгенерировать ключ. Для этого в консоли git пишем: Код:
$ ssh-keygen -t rsa -C "tekkub@gmail.com" - Пишем это в консоле git (только подставить свой адресс) Generating public/private rsa key pair. Enter file in which to save the key (/c/Users/Tekkub/.ssh/id_rsa): - просто жмем ентер Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /c/Users/Tekkub/.ssh/id_rsa. Your public key has been saved in /c/Users/Tekkub/.ssh/id_rsa.pub. The key fingerprint is: e8:ae:60:8f:38:c2:98:1d:6d:84:60:8c:9e:dd:47:81 tekkub@gmail.com Создание нового репозитория Создание нового репозитория – это наверное первая из задач, с которой сталкивается любой разработчик. К данной проблеме есть несколько подходов. Во-первых, можно использовать только локальный репозиторий, но смысла особого я в этом не вижу. Во-вторых, можно создать открытый репозиторий, с которым смогут работать другие люди. Рассмотрим этот вариант. Предположим, что у вас есть сервер example.com и ваша рабочая машинка. Для начала вам необходимо установить git. Сделать это можно как вручную скомпилировав его из исходных кодов, так и установив с помощью менеджера пакетов. Будем считать что с этой операцией вы уже справились. Далее вам надо создать репозиторий. Предположим что вы будете хранить все git-репозитории в /var/git: Код:
cd /var/git mkdir example.git git init --bare Теперь идем на вашу рабочую машину и пишем: Код:
git init git remote add origin ssh://username@example.com/var/git/example.git touch changelog git add changelog git commit -a -m "Initital commit" git push origin master Код:
Counting objects: 3, done. Writing objects: 100% (3/3), 224 bytes, done. Total 3 (delta 0), reused 0 (delta 0) To ssh://username@example.git/var/git/example.git * [new branch] master -> master Разумеется, после создания репозитория разумно узнать “а как же получить эти данные на свой компьютер?”. Для данной операции используется команда 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 branch <branch_name> <tag_name> git checkout <branch_name> Настройка git Для ускорения некоторых операций и увеличения удобства работы можно провести пару настроек: Настройка цветного вывода: git config --global color.ui "auto" Настройка имени пользователя и почтового адреса (между прочим, это хороший тон): Код:
git config user.name "FirstName LastName" git config user.email "user@example.com" Код:
git config --global diff.renamelimit "0" git config --global pack.threads "0" Git – очень мощная и удобная система контроля версий. Для нее существует несколько GUI утилит, которые могут облегчить работу, несколько веб интерфейсов для мониторинга текущего состояния. В последнее время все большее кол-во проектов переходят на использование git, и это показатель того, что git успешно развивается и соответствует последним требованиям в области систем контроля версий. Большое кол-во документации по использованию git можно найти в сети, в том числе и на официальном сайте Продолжение следует... Источник _http://blog.nsws.ru/rabota-s-git-dlya-nachinayushhix.html Последний раз редактировалось Konctantin; 07.06.2010 в 22:45. |
18 пользователя(ей) сказали cпасибо: | Blacksmither (12.12.2011), BloodWarrior (27.03.2011), Fear (18.07.2010), Feel the Power (07.06.2010), Hantet (26.05.2010), KiriX (01.05.2010), Limpnau (08.06.2010), lina (15.01.2011), lovepsone (30.04.2010), MaxXx2021 (10.06.2010), Mayss (22.07.2010), Medivh (07.06.2010), Neggod (30.04.2010), PSZ (05.05.2010), srv38 (01.05.2010), YuruY (26.03.2011) |
07.06.2010, 16:42 | #2 |
RuDB Dev
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
|
|
Пользователь сказал cпасибо: | Feel the Power (08.07.2010) |
08.07.2010, 14:16 | #3 |
RuDB Dev
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
|
Еще одно руководство по git на русском языке.
http://freesource.info/wiki/RuslanHi...rmanual?v=b7s& |
26.03.2011, 10:09 | #4 |
Умный
Старожил
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
|
Что за проблема с гитом? При попытке обновить пишет:
fatal: git status --porcelain failed Делаю git clean -f -x -d и git reset --hard, проходят команды нормально, делаю git gc - ошибка: rm: cannot unlink `pack-99155867d32880251218103923abfc69f6e2ef2a.pack': Permission denied Репозитория локальный, изменений много, терять не хочу, но и без обновления остаться тоже не улыбается, что можно сделать? |
26.03.2011, 18:48 | #5 |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
|
unlink=удалить, что-то с правами доступа случилось?
|
26.03.2011, 23:48 | #6 |
Умный
Старожил
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
|
Нашёл, удалил вручную. git gc теперь работает нормально, но обновляться по прежнему не даёт с ошибкой fatal: git status --porcelain failed
Какие проблемы досутпа на винде по админом??? |
27.03.2011, 19:20 | #7 |
Умный
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
|
какая винда ?
собственно можно попробовать заново установить права на папку и проверить на всякий случай владельца, и на всякий случай принудительно стать владельцем этой папки ну и атрибуты файлов можно проверить -) мало ли что Последний раз редактировалось Йоха; 27.03.2011 в 19:22. |
24.07.2011, 20:41 | #9 |
Ученый
|
Нужна помощь, разбираюсь в гит, вроде всё понятно кроме как добавления уже существующих файлов в гит, что я делаю...
В папке находится исходный код, в гит я пишу Код:
$ cd E:/folder_project1 Код:
$ git push origin master |
25.07.2011, 08:21 | #11 |
Умный
Старожил
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
|
Если консолью добавлять файл, то сначала создаём файлы.
Потом "git add ." Потом "git commit -a -m "Dеscription"" И только потом "git push -u origin master" |
Пользователь сказал cпасибо: | Mayss (25.07.2011) |
25.07.2011, 11:01 | #12 | |
Ученый
|
Цитата:
А ещё вопрос, а если мне нужно будет потом обновить то что я "добавил, написал" в Visual Studio, то что нужно сделать? git push ? Последний раз редактировалось Mayss; 25.07.2011 в 11:05. |
|
25.07.2011, 11:16 | #13 | |
Умный
Старожил
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
|
Цитата:
Основное правило таково - сделал изменения, закоммитил в локальный репо - запушил в сеть. |
|
26.07.2011, 20:29 | #14 |
Новичок
Регистрация: 09.03.2010
Сообщений: 16
Сказал(а) спасибо: 46
Поблагодарили 0 раз(а) в 0 сообщениях
|
Вот еще так на заметку Git cheat sheet
|
28.07.2011, 17:20 | #15 |
Гость
Сообщений: n/a
|
что нада сделать что бы открылось окно :
? |
28.07.2011, 17:24 | #16 |
Ученый
Регистрация: 10.03.2010
Адрес: Бобруйск
Сообщений: 284
Сказал(а) спасибо: 213
Поблагодарили 98 раз(а) в 84 сообщениях
|
Account Settings->SSH Public Keys.
|
Пользователь сказал cпасибо: |
31.07.2011, 20:14 | #17 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
вот в который раз сталкиваюсь с такой ситуацией. например вот репозиторий JavaEmu. делаю pull (в черепахе GIT Sync, затем кнопка pull слева внизу), оно мне выдает окошко с логом, в котором:
Код:
git.exe pull -v "origin" From git://github.com/stormcore/storm = [up to date] master -> origin/master Updating 0300805..eef4f77 error: Entry 'src/org/stormcore/authserver/AuthCodes.java' not uptodate. Cannot merge. и второй вопрос: как посмотреть урл репозитория? ну конечно кроме как руками залезть в файл projects\git\stormcore.git\.git\config. как это сделать из черепахи? |
01.08.2011, 22:57 | #19 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
хмм, возможно. установлен microsoft essentials... или как там его...
|
01.09.2011, 23:30 | #20 |
Гость
Сообщений: n/a
|
где-то читал что можно редактировать уже закоммиченые изменения (коммиты) на сайт Знает кто эти команды?
Последний раз редактировалось Most; 01.09.2011 в 23:34. |
02.09.2011, 08:35 | #21 |
Ученый
Регистрация: 07.03.2010
Сообщений: 138
Сказал(а) спасибо: 200
Поблагодарили 143 раз(а) в 49 сообщениях
|
|
13.10.2011, 14:12 | #22 |
Ученый
Регистрация: 07.03.2010
Адрес: Беларусь,Брест
Сообщений: 188
Сказал(а) спасибо: 131
Поблагодарили 34 раз(а) в 27 сообщениях
|
люди как переключится на русский язык?? что-то я не могу найти!
__________________
sql-language.ru |
13.10.2011, 16:33 | #23 |
Гость
Сообщений: n/a
|
Теперь гит хаб поддерживает только английский язык.
|
Метки |
branch, git |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
"текст в стиле варкрафт" - статья с демиарт | tempura | Прочая документация | 2 | 28.03.2010 09:08 |