<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>заметки на полях &#187; git</title>
	<atom:link href="http://svdev.ru/tag/git/feed/" rel="self" type="application/rss+xml" />
	<link>http://svdev.ru</link>
	<description>Блокнот разработчика</description>
	<lastBuildDate>Thu, 08 Dec 2011 11:40:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Первые шаги в GIT &#8211; создаем репозиторий</title>
		<link>http://svdev.ru/blog/git-first-steps-create-repository/</link>
		<comments>http://svdev.ru/blog/git-first-steps-create-repository/#comments</comments>
		<pubDate>Thu, 14 May 2009 15:57:30 +0000</pubDate>
		<dc:creator>Дерябин Сергей</dc:creator>
				<category><![CDATA[неразобранное]]></category>
		<category><![CDATA[git]]></category>

		<guid isPermaLink="false">http://svdev.ru/?p=45</guid>
		<description><![CDATA[Цели и задачи: имеем локальную копию проекта и копию на сервере. Хотелось бы объединить все это в общий репозиторий, в результате чего на локальной машине и сервере будет версия этого самого репозитория. Имеем следующую структуру на рабочем месте: 123с:/www/project/ # корень проекта c:/www/project/data/ # подключаемые библиотеки и все все все c:/www/project/htdocs/ # www root проекта [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Цели и задачи</strong>: имеем локальную копию проекта и копию на сервере. Хотелось бы объединить все это в общий репозиторий, в результате чего на локальной машине и сервере будет версия этого самого репозитория.</p>
<p><span id="more-45"></span></p>
<p>Имеем следующую структуру на рабочем месте:</p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">с:<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span>project<span style="color: #000000; font-weight: bold;">/</span> <span style="color: #666666; font-style: italic;"># корень проекта</span><br />
c:<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span>project<span style="color: #000000; font-weight: bold;">/</span>data<span style="color: #000000; font-weight: bold;">/</span> <span style="color: #666666; font-style: italic;"># подключаемые библиотеки и все все все</span><br />
c:<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span>project<span style="color: #000000; font-weight: bold;">/</span>htdocs<span style="color: #000000; font-weight: bold;">/</span> <span style="color: #666666; font-style: italic;"># www root проекта</span></div></td></tr></tbody></table></div>
<p>Создание репозитория из директории с:/www/project/ :</p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">git init</span></div></td></tr></tbody></table></div>
<p>Создастся пустой локальный репозиторий с которым можно уже работать. Далее снимаем с него метаданные:</p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">git clone</span> <span style="color: #660033;">--bare</span> project project.git</div></td></tr></tbody></table></div>
<p>создаётся каталог</p>
<code>project.git</code>
<p>- это и будет публичная (общая) часть репозитория, который  нужно слить на сервак в то место, где будут находиться публичные (доступные по ssh) репозитории. Допустим, это будет так:</p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/&lt;</span>user<span style="color: #000000; font-weight: bold;">&gt;/</span><span style="color: #c20cb9; font-weight: bold;">git</span> <span style="color: #666666; font-style: italic;"># здесь хранятся репозитории</span><br />
<span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/%</span>user<span style="color: #000000; font-weight: bold;">%/</span>git<span style="color: #000000; font-weight: bold;">/</span>project.git <span style="color: #666666; font-style: italic;"># это новый репозиторий</span></div></td></tr></tbody></table></div>
<p>Tак репозиторий будет доступен снаружи для git-клиентов:</p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">git</span>+ssh:<span style="color: #000000; font-weight: bold;">//</span>svdev.ru<span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/&lt;</span>user<span style="color: #000000; font-weight: bold;">&gt;/</span>git<span style="color: #000000; font-weight: bold;">/</span>project.git</div></td></tr></tbody></table></div>
<p>На другой машине для получения копии необходимо выполнить:</p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">git clone</span> <span style="color: #c20cb9; font-weight: bold;">git</span>+ssh:<span style="color: #000000; font-weight: bold;">//</span>svdev.ru<span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/&lt;</span>user<span style="color: #000000; font-weight: bold;">&gt;/</span>git<span style="color: #000000; font-weight: bold;">/</span>project.git</div></td></tr></tbody></table></div>
<p>расширение .git отрубится,  и в текущем каталоге появится дерево исходников текущей версии.</p>
<p>Что получилось: локальная копия репозитория и публичная. Но репозиторий еще пустой &#8211; необходимо добавить в него файлы с локальной версии проекта. Текущее состояние можно посмотреть командой</p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">git status</span></div></td></tr></tbody></table></div>
<p>Получаем:</p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;"># On branch master</span><br />
<span style="color: #666666; font-style: italic;">#</span><br />
<span style="color: #666666; font-style: italic;"># Initial commit</span><br />
<span style="color: #666666; font-style: italic;">#</span><br />
<span style="color: #666666; font-style: italic;"># Untracked files:</span><br />
<span style="color: #666666; font-style: italic;">#   (use &quot;git add &lt;file&gt;...&quot; to include in what will be committed)</span><br />
<span style="color: #666666; font-style: italic;">#</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp;data/</span><br />
<span style="color: #666666; font-style: italic;">#    htdocs/</span><br />
<span style="color: #666666; font-style: italic;">#    logs/</span><br />
nothing added to commit but untracked files present <span style="color: #7a0874; font-weight: bold;">&#40;</span>use <span style="color: #ff0000;">&quot;git add&quot;</span> to track<span style="color: #7a0874; font-weight: bold;">&#41;</span></div></td></tr></tbody></table></div>
<p>Но директория <strong></p>
<code>logs</code>
<p></strong> нам в репозитории не нужна, поэтому добавим её в игнорируемы, что бы лишний раз глаза не мозолила. <a href="http://book.git-scm.com/4_ignoring_files.html">http://book.git-scm.com/4_ignoring_files.html</a> или <a href="http://www.kernel.org/pub/software/scm/git/docs/gitignore.html" target="_blank">http://www.kernel.org/pub/software/scm/git/docs/gitignore.html</a> &#8211; здесь подробнее про <strong></p>
<code>.gitignore</code>
<p></strong>, а если в двух словах, то создаем в корне репозитория файл <strong></p>
<code>.gitignore</code>
<p></strong> следующего содержания:</p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">logs</div></td></tr></tbody></table></div>
<p>Каждая строка здесь &#8211; это шаблон для файлов от корня директории, в которой расположен <strong></p>
<code>.gitignore</code>
<p></strong></p>
<p>Добавляем <strong></p>
<code>data</code>
<p></strong> и <strong></p>
<code>htdocs</code>
<p></strong></p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">git add</span> htdocs data</div></td></tr></tbody></table></div>
<p>Далее как в старом добром SVN делаем комит</p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">git commit</span> <span style="color: #660033;">-m</span> <span style="color: #ff0000;">&quot;Initial commit&quot;</span></div></td></tr></tbody></table></div>
<p>Хочу заметить, так же, что в отличие от SVN здесь не нужна никакая дополнительная структура &#8211; весь функционал (и намного больший) реализуется без нашего участия.<br />
Еще одно небольшое отличие&#8230; Куда мы закомитили изменения? В локальный репозиторий! Подробнее про коммиты и работу с публичными репозиториями можно почитать здесь: <a href="http://book.git-scm.com/3_distributed_workflows.html">http://book.git-scm.com/3_distributed_workflows.html</a>. Сначала надо &laquo;сообщить&raquo; где у нас находится публичный репозиторий в который мы собираемся сливать все изменения и откуда в дальнейшем будем обновлять версию на сервере. Делается это при помощи <strong></p>
<code>git config</code>
<p></strong>:</p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">git config</span> remote.origin.url <span style="color: #ff0000;">&quot;git+ssh://&lt;user&gt;@svdev.ru/home/&lt;user&gt;/project.git&quot;</span><br />
<span style="color: #666666; font-style: italic;"># здесь origin - это короткое имя для репозитория</span></div></td></tr></tbody></table></div>
<p>Теперь можно выкладывать наши изменения в общий репозиторий:</p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">git push</span> origin master<br />
<span style="color: #666666; font-style: italic;"># origin - это короткое имя для репозитория, которое мы задали в предыдущем шаге</span><br />
<span style="color: #666666; font-style: italic;"># master - это имя ветки (об этом позже)</span></div></td></tr></tbody></table></div>
<p>Теперь у нас есть публичный репозиторий и локальный &#8211; который знает о внешнем. Осталось сделать копию репозитория на рабочем сервере. В моем случае &#8211; сервер где хранятся публичные репозитории и где запущены сами проекты один и тот же, поэтому получать будем из локальной директории:</p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www<br />
<span style="color: #c20cb9; font-weight: bold;">git clone</span> <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/&lt;</span>user<span style="color: #000000; font-weight: bold;">&gt;/</span>git<span style="color: #000000; font-weight: bold;">/</span>project.git .<span style="color: #000000; font-weight: bold;">/</span>project<br />
<span style="color: #666666; font-style: italic;"># в дальнейшем можно будет обновлятся так:</span><br />
<span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span>project<br />
<span style="color: #c20cb9; font-weight: bold;">git pull</span> origin master</div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>http://svdev.ru/blog/git-first-steps-create-repository/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Git теперь и для eclipse</title>
		<link>http://svdev.ru/blog/git-as-eclipse-plugin/</link>
		<comments>http://svdev.ru/blog/git-as-eclipse-plugin/#comments</comments>
		<pubDate>Thu, 07 May 2009 14:51:17 +0000</pubDate>
		<dc:creator>Дерябин Сергей</dc:creator>
				<category><![CDATA[неразобранное]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[git]]></category>

		<guid isPermaLink="false">http://svdev.ru/?p=18</guid>
		<description><![CDATA[Наконец то появился git плагин для eclipse. Правда пока только экспериментальная версия и с весьма ограниченным функционалом, но все таки уже что-то. Список задач в разработке довольно велик. Вот к примеру некоторые из них: Поддержка других модулей &#8211; в настоящее время проект, использующий другие модули для работы с git, не может быть склонирован или управляться [...]]]></description>
			<content:encoded><![CDATA[<p>Наконец то появился git плагин для eclipse. Правда пока только экспериментальная версия и с весьма ограниченным функционалом, но все таки уже что-то.</p>
<p>Список задач в разработке довольно велик. Вот к примеру некоторые из них:<strong> Поддержка других модулей</strong> &#8211; в настоящее время проект, использующий другие модули для работы с git, не может быть склонирован или управляться из egit. Даже если проект склонирован (получен) вне пределах eclipse, то не сработает комит из egit <strong>Поддержка веток</strong> &#8211; создание, удаление&#8230; Работа с тегами и <strong>gitignore</strong>, .  С полным списком можно ознакомиться здесь: <a href="http://git.or.cz/gitwiki/EclipsePluginWishlist" target="_blank">EclipsePluginWishlist</a></p>
<p>Для установки последней версии плагина необходимо в список источников добавить <strong>http://www.jgit.org/update-site</strong> и выбрать необходимый пакет.</p>
]]></content:encoded>
			<wfw:commentRss>http://svdev.ru/blog/git-as-eclipse-plugin/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

