<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
	<title>Хабрахабр / Комментарии к посту «ХХ полезных советов для пользователей Git среднего уровня. Часть 1» в блоге «Git»</title>
	<link>http://habrahabr.ru/rss/post/75728/</link>
	<description><![CDATA[Новые комментарии к посту «ХХ полезных советов для пользователей Git среднего уровня. Часть 1» в блоге «Git»]]></description>
	<language>ru</language>
	<managingEditor>editor@habrahabr.ru</managingEditor>
	<generator>habrahabr.ru</generator>
	<pubDate>Sat, 11 Feb 2012 12:08:44 GMT</pubDate>
	<lastBuildDate></lastBuildDate>
	<image>
		<link>http://habrahabr.ru/</link>
		<url>http://habrahabr.ru/i/logo.gif</url>
		<title>Хабрахабр</title>
	</image>
	

	
	
	
	
	
		
	
		<item>
			<title>22.11.2009 08:37:43 cabeza</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/75728/#comment_2206518</guid>
			<link>http://habrahabr.ru/blogs/Git/75728/#comment_2206518</link>
			<description><![CDATA[Понятно<br/>
Никак не могу заставить себя делать по-настоящему атомарные коммиты]]></description>
			<pubDate>Sun, 22 Nov 2009 08:37:43 GMT</pubDate>
			<author>cabeza</author>
		</item>
	

	
		<item>
			<title>20.11.2009 22:02:42 allter</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/75728/#comment_2203483</guid>
			<link>http://habrahabr.ru/blogs/Git/75728/#comment_2203483</link>
			<description><![CDATA[Я так делаю, к примеру, когда исправляю ошибку: вношу сами изменения с комментариями «для себя» или часто исправляю несколько ошибок или, к примеру, добавляю команды вывода в логи. И вот что бы сделать патчсеты с корректными названиями я и делаю git add -p. «Косметику», вроде логгирования и отладочных сообщений обычно не хочется отсылать в проекты из-за несоответствия стилей кодирования, поэтому я её потом при необходимости снова потестироваться трансплантирую наверх апстримовской ветки.]]></description>
			<pubDate>Fri, 20 Nov 2009 22:02:42 GMT</pubDate>
			<author>allter</author>
		</item>
	

	
		<item>
			<title>20.11.2009 20:24:32 ghisguth</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/75728/#comment_2203142</guid>
			<link>http://habrahabr.ru/blogs/Git/75728/#comment_2203142</link>
			<description><![CDATA[Ну в придачу ещё две полезные комманды:<br/>
<b>git rerere</b> — позволяет записывать решение конфликтов и при повторном мерже использовать их. Помогает в случае если бранч живет долго и часто возникает необходимость мержится с другими бранчами. Включается просто: <b>git config --global rerere.enabled 1</b><br/>
И <b>git rebase --onto</b>. Позволяет перенести ветку с одним основанием на другое. Когда полезно: Есть мастер в котором происходит активная разработка. В определенный момент был начат бранч с новой независимой фичей, но от текущего мастера. Фича сделана и в принципе может быть внесена в стабильную ветку, но из-за того что она была начата на от стабильной ветки, при обычном мерже потянет за собой коммиты, которые не должны попасть в стабильную версию. На выручку приходит git rebase --onto, который позволяет создать ветку которая будет начинаться от стабильной версии и содержать все коммиты, которые были сделаны в ветке от мастера.]]></description>
			<pubDate>Fri, 20 Nov 2009 20:24:32 GMT</pubDate>
			<author>ghisguth</author>
		</item>
	

	
		<item>
			<title>20.11.2009 20:16:02 ghisguth</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/75728/#comment_2203111</guid>
			<link>http://habrahabr.ru/blogs/Git/75728/#comment_2203111</link>
			<description><![CDATA[чем атомарнее коммит — там легче мёрж. так как коммит происходит на локальной машине без оверхеда работы по сети — то коммиты можно делать хоть раз в 5 минут<br/>
но иногда закапываешься в какую-то проблему, попутно исправляешь какие-то баги — в итоге в файле накапливаются изменения не связаные друг — с другом. <br/>
в таком случае лучше закоммитить по ханкам — всё что относится к одной фиче — в один коммит, что к другой — в другой коммит.<br/>
кроме того, очень полезная комманда: git cherry-pick. использовать можно так — есть бранч, в котором новая фича и его нельзя пока мержить в мастер. Но там попутно исправлено пару багов, а вас просят влить эти исправления в мастер. Делается в бранче сделаном от мастера<br/>
git cherry-pick BUGFIX_COMMIT_SHA1 <br/>
и не надо заново вносить изменения или как-то менять историю (в этом случае вы подумаете, что «как хорошо, что я дулал коммиты атомарными и этот багфикс не тянет за собой кучу изменений связаных с новой фичей»)]]></description>
			<pubDate>Fri, 20 Nov 2009 20:16:02 GMT</pubDate>
			<author>ghisguth</author>
		</item>
	

	
		<item>
			<title>20.11.2009 17:43:52 spanasik</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/75728/#comment_2202569</guid>
			<link>http://habrahabr.ru/blogs/Git/75728/#comment_2202569</link>
			<description><![CDATA[Это Вам спасибо!]]></description>
			<pubDate>Fri, 20 Nov 2009 17:43:52 GMT</pubDate>
			<author>spanasik</author>
		</item>
	

	
		<item>
			<title>20.11.2009 17:43:25 cabeza</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/75728/#comment_2202568</guid>
			<link>http://habrahabr.ru/blogs/Git/75728/#comment_2202568</link>
			<description><![CDATA[Хаха, спасибо!)]]></description>
			<pubDate>Fri, 20 Nov 2009 17:43:25 GMT</pubDate>
			<author>cabeza</author>
		</item>
	

	
		<item>
			<title>20.11.2009 17:34:54 spanasik</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/75728/#comment_2202553</guid>
			<link>http://habrahabr.ru/blogs/Git/75728/#comment_2202553</link>
			<description><![CDATA[Неистово плюсую! <br/>
Столько новой инфы по гиту — это же просто праздник какой-то! :-)]]></description>
			<pubDate>Fri, 20 Nov 2009 17:34:54 GMT</pubDate>
			<author>spanasik</author>
		</item>
	

	
		<item>
			<title>20.11.2009 16:03:20 cabeza</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/75728/#comment_2202255</guid>
			<link>http://habrahabr.ru/blogs/Git/75728/#comment_2202255</link>
			<description><![CDATA[* в каких случаях нужно]]></description>
			<pubDate>Fri, 20 Nov 2009 16:03:20 GMT</pubDate>
			<author>cabeza</author>
		</item>
	

	
		<item>
			<title>20.11.2009 14:48:26 el777</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/75728/#comment_2201978</guid>
			<link>http://habrahabr.ru/blogs/Git/75728/#comment_2201978</link>
			<description><![CDATA[Спасибо.]]></description>
			<pubDate>Fri, 20 Nov 2009 14:48:26 GMT</pubDate>
			<author>el777</author>
		</item>
	

	
		<item>
			<title>20.11.2009 14:17:49 cabeza</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/75728/#comment_2201858</guid>
			<link>http://habrahabr.ru/blogs/Git/75728/#comment_2201858</link>
			<description><![CDATA[Про rebase -i я еще расскажу!<br/>
Всегда интересовало — в каких случаях интерактивно, скажем, выборочно добавлять файл?]]></description>
			<pubDate>Fri, 20 Nov 2009 14:17:49 GMT</pubDate>
			<author>cabeza</author>
		</item>
	

	
		<item>
			<title>20.11.2009 14:14:27 allter</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/75728/#comment_2201841</guid>
			<link>http://habrahabr.ru/blogs/Git/75728/#comment_2201841</link>
			<description><![CDATA[Из недавно освоенных полезных трюков: <br/>
<br/>
git add -i # Интерактивное добавление файла в индекс<br/>
git add -p # Интерактивное добавление файла в индекс с выбором отдельных ханков (частный случай -i)<br/>
git rebase -i # Трансплантация ветки с редактированием состава коммитов (можно пропускать, редактировать, объединять)<br/>
<br/>
]]></description>
			<pubDate>Fri, 20 Nov 2009 14:14:27 GMT</pubDate>
			<author>allter</author>
		</item>
	

	
		<item>
			<title>20.11.2009 13:56:28 cabeza</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/75728/#comment_2201747</guid>
			<link>http://habrahabr.ru/blogs/Git/75728/#comment_2201747</link>
			<description><![CDATA[&gt; git push origin `git here` # пушнуть изменения в ветку удаленного репозитория<br/>
<br/>
это --track!))]]></description>
			<pubDate>Fri, 20 Nov 2009 13:56:28 GMT</pubDate>
			<author>cabeza</author>
		</item>
	

	
		<item>
			<title>20.11.2009 13:47:36 cybergrind</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/75728/#comment_2201703</guid>
			<link>http://habrahabr.ru/blogs/Git/75728/#comment_2201703</link>
			<description><![CDATA[еще один полезный алиас из ~/.gitconfig<br/>
here = &quot;!echo $(git symbolic-ref HEAD | sed 's/refs\\/heads\\///g')&quot;<br/>
<br/>
позволяет выполнять комманды типа<br/>
git push origin `git here` # пушнуть изменения в ветку удаленного репозитория<br/>
<br/>
и подготавливает к написанию действительно страшных алиасов, типа killbranch, который будет прибивать и локальный бранч, и бранч в удаленном репозитории.<br/>
<br/>
в общем алиасов хороших можно привести много — главное не боятся их писать — тем более что в гите их делать проще простого.<br/>
<br/>
]]></description>
			<pubDate>Fri, 20 Nov 2009 13:47:36 GMT</pubDate>
			<author>cybergrind</author>
		</item>
	

	
		<item>
			<title>20.11.2009 13:33:11 VolCh</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/75728/#comment_2201625</guid>
			<link>http://habrahabr.ru/blogs/Git/75728/#comment_2201625</link>
			<description><![CDATA[Сначала прочитаю что уже переведено, спасибо за наводку]]></description>
			<pubDate>Fri, 20 Nov 2009 13:33:11 GMT</pubDate>
			<author>VolCh</author>
		</item>
	

	
		<item>
			<title>20.11.2009 13:17:56 cabeza</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/75728/#comment_2201547</guid>
			<link>http://habrahabr.ru/blogs/Git/75728/#comment_2201547</link>
			<description><![CDATA[Посмотрите в сторону server-hooks. Post-commit, например]]></description>
			<pubDate>Fri, 20 Nov 2009 13:17:56 GMT</pubDate>
			<author>cabeza</author>
		</item>
	

	
		<item>
			<title>20.11.2009 13:12:14 el777</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/75728/#comment_2201531</guid>
			<link>http://habrahabr.ru/blogs/Git/75728/#comment_2201531</link>
			<description><![CDATA[Просто я хочу, чтобы бранч с конфигами лежал на удаленном серваке, и автоматически примерживался, после пуша.<br/>
У меня была мысль, что если его смержить один раз когда-то давно, с тем смыслом, чтобы гит «знал» про этот мердж, и учитывал его. Будет ли это иметь работать? Или такие изменения затрутся в истории гита? Возможно я спрашиваю ерунду — я еще не разобрался для себя как работает гит.]]></description>
			<pubDate>Fri, 20 Nov 2009 13:12:14 GMT</pubDate>
			<author>el777</author>
		</item>
	

	
		<item>
			<title>20.11.2009 12:59:44 shergin</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/75728/#comment_2201476</guid>
			<link>http://habrahabr.ru/blogs/Git/75728/#comment_2201476</link>
			<description><![CDATA[<a href="http://translated.by/you/git-community-book/into-ru/trans/">translated.by/you/git-community-book/into-ru/trans/</a><br/>
Как раз вот тут мы переводим (уже больше половины перевели) Git Community Book, которая чрезвычайна полезна и начинающим.<br/>
Помогите нам сделать свободную, качественную и красивую книжку о Git!<br/>
Это было что-то типа рекламы. :) ]]></description>
			<pubDate>Fri, 20 Nov 2009 12:59:44 GMT</pubDate>
			<author>shergin</author>
		</item>
	

	
		<item>
			<title>20.11.2009 12:58:05 googlebot</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/75728/#comment_2201464</guid>
			<link>http://habrahabr.ru/blogs/Git/75728/#comment_2201464</link>
			<description><![CDATA[да, работает]]></description>
			<pubDate>Fri, 20 Nov 2009 12:58:05 GMT</pubDate>
			<author>googlebot</author>
		</item>
	

	
		<item>
			<title>20.11.2009 12:57:16 cabeza</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/75728/#comment_2201456</guid>
			<link>http://habrahabr.ru/blogs/Git/75728/#comment_2201456</link>
			<description><![CDATA[git commit -a --amend -C HEAD более чем удобно, да!<br/>
<br/>
Но, честно сказать, меня больше порадовало недавно примененная<br/>
$ git filter-branch --tree-filter «sed -e 's#my_secret_pass#dbpassword#' -e 's#my_db_hostdbhost.tld#' -i settings.py» HEAD<br/>
где my_secret_pass и my_db_host были реальными паролем и хостом ^_^]]></description>
			<pubDate>Fri, 20 Nov 2009 12:57:16 GMT</pubDate>
			<author>cabeza</author>
		</item>
	

	
		<item>
			<title>20.11.2009 12:49:32 cybergrind</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/75728/#comment_2201425</guid>
			<link>http://habrahabr.ru/blogs/Git/75728/#comment_2201425</link>
			<description><![CDATA[там только точку не отделил в первой комманде<br/>
«git pull&nbsp;. refs/remotes/origin/master-branch»<br/>
а вообще гит — мощная штука, и наличие например «git commit --amend» очень порадовало.]]></description>
			<pubDate>Fri, 20 Nov 2009 12:49:32 GMT</pubDate>
			<author>cybergrind</author>
		</item>
	

	
		<item>
			<title>20.11.2009 12:43:12 cabeza</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/75728/#comment_2201382</guid>
			<link>http://habrahabr.ru/blogs/Git/75728/#comment_2201382</link>
			<description><![CDATA[без &quot;:heads/&quot; тоже должно работать, не?]]></description>
			<pubDate>Fri, 20 Nov 2009 12:43:12 GMT</pubDate>
			<author>cabeza</author>
		</item>
	

	
		<item>
			<title>20.11.2009 12:42:39 cabeza</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/75728/#comment_2201379</guid>
			<link>http://habrahabr.ru/blogs/Git/75728/#comment_2201379</link>
			<description><![CDATA[Git, c версии 1.6.2, кажется, пытается делать track`уемым бранч, если он был создан через -b.<br/>
<br/>
Я укажи эти команды во второй части статьи, спасибо]]></description>
			<pubDate>Fri, 20 Nov 2009 12:42:39 GMT</pubDate>
			<author>cabeza</author>
		</item>
	

	
		<item>
			<title>20.11.2009 12:41:24 cybergrind</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/75728/#comment_2201370</guid>
			<link>http://habrahabr.ru/blogs/Git/75728/#comment_2201370</link>
			<description><![CDATA[# и да, забыл<br/>
git push origin :heads/new-branch<br/>
# удалить созданный бранч в удаленном репозитории]]></description>
			<pubDate>Fri, 20 Nov 2009 12:41:24 GMT</pubDate>
			<author>cybergrind</author>
		</item>
	

	
		<item>
			<title>20.11.2009 12:38:59 cybergrind</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/75728/#comment_2201357</guid>
			<link>http://habrahabr.ru/blogs/Git/75728/#comment_2201357</link>
			<description><![CDATA[# я бы посоветовал еще одну комманду:<br/>
<br/>
git pull. refs/remotes/origin/master-branch<br/>
# смержить удаленный бранч к себе<br/>
<br/>
# ну и обратить внимание на такую последовательность:<br/>
<br/>
git push origin origin/source-branch:refs/heads/new-branch<br/>
# создает на удаленном сервере бранч new-branch c кодом из source-branch<br/>
git checkout -b new-branch --track origin/new-branch<br/>
# создаль локальный new-branch и настроить его на треканье удаленного =)<br/>
<br/>
]]></description>
			<pubDate>Fri, 20 Nov 2009 12:38:59 GMT</pubDate>
			<author>cybergrind</author>
		</item>
	

	
		<item>
			<title>20.11.2009 12:37:59 cabeza</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/75728/#comment_2201346</guid>
			<link>http://habrahabr.ru/blogs/Git/75728/#comment_2201346</link>
			<description><![CDATA[Да, перед пушем на апстримный сервер надо сделать ребэйз, тем самым вы притворитесь, будто спушили всё, что можно, и свой коммит сделали с пылу с жару, основываясь на самом последнем коммите из апстрима.<br/>
<br/>
Я держу пароли (точнее, конфиги с настоящими паролями) и прочие специализированные штуки в отдельном бранче. При добавлении в мастере каких-либо важных фич просто мерджу этот бранч с мастером.<br/>
<br/>
Или я не понял исходную задачу.]]></description>
			<pubDate>Fri, 20 Nov 2009 12:37:59 GMT</pubDate>
			<author>cabeza</author>
		</item>
	

	
		<item>
			<title>20.11.2009 12:29:58 el777</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/75728/#comment_2201300</guid>
			<link>http://habrahabr.ru/blogs/Git/75728/#comment_2201300</link>
			<description><![CDATA[То есть перед пушем туда мне надо сделать там rebase?<br/>
<br/>
Да, пуш в мастер на удаленную машину предполагается из мастера. Но они все равно будут рассинхронизированы в части настроек (скажем логин и пароль для БД другие). При этом хотелось бы обновить удаленный репо и не затереть его настройки. Исключать конфиг из контроля версий неправильно. Перезаписывать файл поверх после пуша тоже плохо — т.к. в настройки может добавиться что-то, что не хотелось бы руками переносить.]]></description>
			<pubDate>Fri, 20 Nov 2009 12:29:58 GMT</pubDate>
			<author>el777</author>
		</item>
	

	
		<item>
			<title>20.11.2009 12:16:56 cabeza</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/75728/#comment_2201234</guid>
			<link>http://habrahabr.ru/blogs/Git/75728/#comment_2201234</link>
			<description><![CDATA[Т.е. Вы делаете коммит origin_head+1, и хотите выложить его, даже если кто-то запушил своё вариант origin_head+1?<br/>
Вам поможет git rebase origin/master — после этого можете пушить свои изменения.<br/>
<br/>
Я бы держал свои изменения в отдельном бранче, а в мастер держал бы синхронизированным с репо на сервере, но сути это не меняет.]]></description>
			<pubDate>Fri, 20 Nov 2009 12:16:56 GMT</pubDate>
			<author>cabeza</author>
		</item>
	

	
		<item>
			<title>20.11.2009 12:12:05 cabeza</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/75728/#comment_2201206</guid>
			<link>http://habrahabr.ru/blogs/Git/75728/#comment_2201206</link>
			<description><![CDATA[Способствуют, не спорю. Никто не рождается сразу с багажом знаний. Но и читать каждый раз про «первым делом укажите своё имя и почту», хотя пришел искать приёмы черной магии, утомительно, согласитесь.]]></description>
			<pubDate>Fri, 20 Nov 2009 12:12:05 GMT</pubDate>
			<author>cabeza</author>
		</item>
	

	
		<item>
			<title>20.11.2009 12:10:28 el777</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/75728/#comment_2201195</guid>
			<link>http://habrahabr.ru/blogs/Git/75728/#comment_2201195</link>
			<description><![CDATA[Вопрос про push в удаленный бранч.<br/>
Можно ли его делать в не-bare репозиторий с имеющимися там изменениями?<br/>
Я хочу таким образом выкладывать код из репы на сервер, но чтобы при этом сделанные там изменения (те же самые конфиги) не затирались, а мерджились.<br/>
Видел какие-то вариант, но все чрезмерно замороченные. Может есть нормальный удобный способ?]]></description>
			<pubDate>Fri, 20 Nov 2009 12:10:28 GMT</pubDate>
			<author>el777</author>
		</item>
	

	
		<item>
			<title>20.11.2009 12:09:39 cabeza</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/75728/#comment_2201193</guid>
			<link>http://habrahabr.ru/blogs/Git/75728/#comment_2201193</link>
			<description><![CDATA[да, конечно же сервер]]></description>
			<pubDate>Fri, 20 Nov 2009 12:09:39 GMT</pubDate>
			<author>cabeza</author>
		</item>
	

	
		<item>
			<title>20.11.2009 12:06:46 VolCh</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/75728/#comment_2201180</guid>
			<link>http://habrahabr.ru/blogs/Git/75728/#comment_2201180</link>
			<description><![CDATA[&gt;но в процессе я отбросил бестолковые, общеизвестные или самые простые советы вроде «настройте первым делом user.name и user.email», которые явно не подходят людям, уже более-менее плотно знакомым с Git.<br/>
<br/>
Зря, по-моему — общеизвестные или самые простые советы способствуют переходу из «начинающих» в «продвинутые» или даже из «интересующихся» в «продвинутые». Но все равно спасибо, добавил в закладки, к тому времени как стану начинающим :)]]></description>
			<pubDate>Fri, 20 Nov 2009 12:06:46 GMT</pubDate>
			<author>VolCh</author>
		</item>
	

	
		<item>
			<title>20.11.2009 12:05:32 ivanych</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/75728/#comment_2201174</guid>
			<link>http://habrahabr.ru/blogs/Git/75728/#comment_2201174</link>
			<description><![CDATA[&gt;git config --global alias.remotes 'remote -v' — Это сделает вывод git remote чуть более подробным, но не столь много словным, как git remote show $branch, в котором, к тому же, нужно указать конкретный бранч.<br/>
<br/>
Бранч? Может, сервер?]]></description>
			<pubDate>Fri, 20 Nov 2009 12:05:32 GMT</pubDate>
			<author>ivanych</author>
		</item>
	

	
</channel>
</rss>

