<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
	<title>Хабрахабр / Комментарии к посту «ХХ полезных советов для пользователей Git среднего уровня. Часть 2» в блоге «Git»</title>
	<link>http://habrahabr.ru/rss/post/76084/</link>
	<description><![CDATA[Новые комментарии к посту «ХХ полезных советов для пользователей Git среднего уровня. Часть 2» в блоге «Git»]]></description>
	<language>ru</language>
	<managingEditor>editor@habrahabr.ru</managingEditor>
	<generator>habrahabr.ru</generator>
	<pubDate>Sat, 11 Feb 2012 12:23:26 GMT</pubDate>
	<lastBuildDate></lastBuildDate>
	<image>
		<link>http://habrahabr.ru/</link>
		<url>http://habrahabr.ru/i/logo.gif</url>
		<title>Хабрахабр</title>
	</image>
	

	
	
	
	
	
		
	
		<item>
			<title>02.06.2010 07:39:21 Darkened</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/76084/#comment_2904335</guid>
			<link>http://habrahabr.ru/blogs/Git/76084/#comment_2904335</link>
			<description><![CDATA[Предлагаю добавить git kekeke — заполнение удалённого репозитория тысячами маленьких вредных коммитов.]]></description>
			<pubDate>Wed, 02 Jun 2010 07:39:21 GMT</pubDate>
			<author>Darkened</author>
		</item>
	

	
		<item>
			<title>09.12.2009 09:05:29 cabeza</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/76084/#comment_2265361</guid>
			<link>http://habrahabr.ru/blogs/Git/76084/#comment_2265361</link>
			<description><![CDATA[ну этим и отличается rebase от merge<br/>
итог примерно один — пути разные — ибо для разных случаев применяется]]></description>
			<pubDate>Wed, 09 Dec 2009 09:05:29 GMT</pubDate>
			<author>cabeza</author>
		</item>
	

	
		<item>
			<title>09.12.2009 08:56:45 ivanych</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/76084/#comment_2265330</guid>
			<link>http://habrahabr.ru/blogs/Git/76084/#comment_2265330</link>
			<description><![CDATA[Попробовал rebasе. Это же ужас.<br/>
<br/>
Есть бранч. Если я его просто смержу с мастером, то потом я могу его откатить одним reset'ом или revert'ом. Возникает точка слияния и достаточно откатить эту точку, чтобы откатились все коммиты бранча.<br/>
<br/>
Если же я сделаю rebase бранча, а потом смержу бранч с мастером, то потом же невозможно будет этот бранч откатить. Точки слияния нет, значит, придется откатывать кучу одиночных коммитов, а предварительно соображать, сколько же коммитов относятся именно к этому бранчу.<br/>
<br/>
Это неудобно. А вот «запутанная» история разработки, о которой все говорят, никаких неудобств не вызывает. Я чего-то не понял?]]></description>
			<pubDate>Wed, 09 Dec 2009 08:56:45 GMT</pubDate>
			<author>ivanych</author>
		</item>
	

	
		<item>
			<title>25.11.2009 17:27:58 ivanych</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/76084/#comment_2219135</guid>
			<link>http://habrahabr.ru/blogs/Git/76084/#comment_2219135</link>
			<description><![CDATA[Так именно так у меня все и есть. Вы все-таки перечитайте еще раз:)]]></description>
			<pubDate>Wed, 25 Nov 2009 17:27:58 GMT</pubDate>
			<author>ivanych</author>
		</item>
	

	
		<item>
			<title>25.11.2009 06:50:54 mkevac</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/76084/#comment_2216748</guid>
			<link>http://habrahabr.ru/blogs/Git/76084/#comment_2216748</link>
			<description><![CDATA[Ваша модель работает, это я прекрасно понимаю. Наверное я погорячился, назвав ее неправильной, ведь git не задает никаких ограничений в использовании и даже советов не дает по тому, как использовать. Просто такую нестандартную модель я еще не встречал.<br/>
<br/>
Идеальной по моему мнению является модель, когда «релизный» репозиторий находится у главного архитектора\менеджера и он постепенно берет патчи\пуллит изменения от разработчиков. А сами разработчики, при необходимости, берут что-то у своих коллег или с этого «релизного» репозитория. Примерно такая модель в Linux-е.]]></description>
			<pubDate>Wed, 25 Nov 2009 06:50:54 GMT</pubDate>
			<author>mkevac</author>
		</item>
	

	
		<item>
			<title>25.11.2009 06:21:23 ivanych</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/76084/#comment_2216710</guid>
			<link>http://habrahabr.ru/blogs/Git/76084/#comment_2216710</link>
			<description><![CDATA[Мне кажется, Вы не поняли, что именно я написал.<br/>
<br/>
У меня нет единого репозитория, в который все толкают свой код. Репозиторий dev — у меня это не единый репозиторий. У меня у каждого разработчика свой собственный публичный репозиторий, именно туда каждый разработчик и толкает свой код. А я, апстрим, только стягиваю из ихних репозиториев устраивающие меня правки. Это ровно та же схема, про которую Вы чуть выше рассказывали касательно Торвальдса.<br/>
<br/>
Я только делаю одно упрощение — мне лень каждому разработчику делать отдельный репозиторий и лень учить каждого разработчика делать свой репозиторий. Я просто завел один публичный репозиторий dev на всех разработчиков. Но с точки зрения алгоритма работы это ничего не меняет, просто в конфиге у всех разработчиков одно и тоже название сервера. При этом каждый из разработчиков может даже не задумываться, что в его репозиторий еще кто-то пушит.<br/>
<br/>
И да, в этом репозитории нет единой ветки, в которую все бесконтрольно пушат. Об этом, собственно, вся статья и написана.]]></description>
			<pubDate>Wed, 25 Nov 2009 06:21:23 GMT</pubDate>
			<author>ivanych</author>
		</item>
	

	
		<item>
			<title>24.11.2009 21:12:21 mkevac</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/76084/#comment_2215950</guid>
			<link>http://habrahabr.ru/blogs/Git/76084/#comment_2215950</link>
			<description><![CDATA[Да, я согласен. Своим первым комментарием я ставил целью объяснить, что подход ivanych-а является подходом централизованныз систем контроля версий, когда используется единый главный репозиторий, в который все «толкают» свой код. Он всего лишь перенес эти подходы на git, не понимая, как мне кажется, саму идею распределенности.]]></description>
			<pubDate>Tue, 24 Nov 2009 21:12:21 GMT</pubDate>
			<author>mkevac</author>
		</item>
	

	
		<item>
			<title>24.11.2009 20:45:06 cabeza</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/76084/#comment_2215854</guid>
			<link>http://habrahabr.ru/blogs/Git/76084/#comment_2215854</link>
			<description><![CDATA[Вот именно, мерджится с своими офицерами и только с ними, а вовне со всеми подряд. Ваш правки дойдут до них (офицеров) через N-ное количество промежуточных бранчей.<br/>
<br/>
Я, наверное, резковато откаментил — я имел в виду, что первоначально в проект коммиты в 90% случаев попадут в виде патчей, а не кто-то их будет пулить.<br/>
Разве что это совсем вменяемый и не самый крупный апстрим.]]></description>
			<pubDate>Tue, 24 Nov 2009 20:45:06 GMT</pubDate>
			<author>cabeza</author>
		</item>
	

	
		<item>
			<title>24.11.2009 17:45:19 mkevac</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/76084/#comment_2215152</guid>
			<link>http://habrahabr.ru/blogs/Git/76084/#comment_2215152</link>
			<description><![CDATA[Мммм… Большой проект. Да да, припоминаю. Линус Торвальдс постоянно pull-ит из репоизитариев своих помощников.]]></description>
			<pubDate>Tue, 24 Nov 2009 17:45:19 GMT</pubDate>
			<author>mkevac</author>
		</item>
	

	
		<item>
			<title>24.11.2009 17:12:58 cabeza</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/76084/#comment_2215079</guid>
			<link>http://habrahabr.ru/blogs/Git/76084/#comment_2215079</link>
			<description><![CDATA[Ага, порассказывайте в апстриме какого-нибудь крупного проекта, что им надо что-то пулить с неизвестных серверов, вместо быстрого изучения приаттаченных патчей.<br/>
Обычно format-patch и вперед.]]></description>
			<pubDate>Tue, 24 Nov 2009 17:12:58 GMT</pubDate>
			<author>cabeza</author>
		</item>
	

	
		<item>
			<title>24.11.2009 16:07:39 mkevac</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/76084/#comment_2214921</guid>
			<link>http://habrahabr.ru/blogs/Git/76084/#comment_2214921</link>
			<description><![CDATA[git — распределенная система. У каждого свой репозитарий. Здесь не принято отправлять бранч куда-нибудь. Это у вас его могут заpull-ить.]]></description>
			<pubDate>Tue, 24 Nov 2009 16:07:39 GMT</pubDate>
			<author>mkevac</author>
		</item>
	

	
		<item>
			<title>24.11.2009 07:55:07 cabeza</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/76084/#comment_2212912</guid>
			<link>http://habrahabr.ru/blogs/Git/76084/#comment_2212912</link>
			<description><![CDATA[Здесь красота не косметическая, а сугубо утилитарная.<br/>
<br/>
Знаете, ну как является красивым идеально написанный код — он же красив своей стройностью, а не некой внешней красотой.]]></description>
			<pubDate>Tue, 24 Nov 2009 07:55:07 GMT</pubDate>
			<author>cabeza</author>
		</item>
	

	
		<item>
			<title>24.11.2009 07:47:49 ivanych</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/76084/#comment_2212886</guid>
			<link>http://habrahabr.ru/blogs/Git/76084/#comment_2212886</link>
			<description><![CDATA[Т.е. получается, все это чисто для красоты?<br/>
<br/>
Атомарность коммита и легкость отрывания я бы понял, если бы бранч целиком сложно было оторвать. Но ведь бранч оторвать легко. Смерженный бранч — это точно такой же коммит, отрываем его — и отрывается весь бранч.]]></description>
			<pubDate>Tue, 24 Nov 2009 07:47:49 GMT</pubDate>
			<author>ivanych</author>
		</item>
	

	
		<item>
			<title>24.11.2009 06:27:29 cabeza</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/76084/#comment_2212678</guid>
			<link>http://habrahabr.ru/blogs/Git/76084/#comment_2212678</link>
			<description><![CDATA[Отправить бранч целиком означает «мне было лень привести всё в божеский вид, ковыряйтесь сами».<br/>
Если Вы не коммитер в этот проект, то бранч целиком у вас никто и не примет и Ваш тоже смотреть не будет.<br/>
А если Вы коммитер и написали какую-то новую фичу, то Вам её и вливать в основное дерево. Можно тупо смерджить — в основной истории будут все неудачные, ненужные и промежуточные коммиты вместо единообразной красивой истории, в которой добавление вашей фичи, грубо говоря, представлено один коммитом и в силу такой атомарности отрывание её не представляет труда.<br/>
Слишком упрощенно, но доступней я не могу, из меня объясняльщик хреновый, к сожалению.]]></description>
			<pubDate>Tue, 24 Nov 2009 06:27:29 GMT</pubDate>
			<author>cabeza</author>
		</item>
	

	
		<item>
			<title>24.11.2009 06:14:16 google_fan</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/76084/#comment_2212663</guid>
			<link>http://habrahabr.ru/blogs/Git/76084/#comment_2212663</link>
			<description><![CDATA[Еще пример — если вам приходится синхронизироваться с svn репозиторием. Svn не понимает веток git поэтому там мерджи выглядят как один большой коммит. Делая rebase можно сохранить всю историю коммитов из сливаемой ветки.]]></description>
			<pubDate>Tue, 24 Nov 2009 06:14:16 GMT</pubDate>
			<author>google_fan</author>
		</item>
	

	
		<item>
			<title>24.11.2009 05:57:24 ivanych</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/76084/#comment_2212629</guid>
			<link>http://habrahabr.ru/blogs/Git/76084/#comment_2212629</link>
			<description><![CDATA[Спасибо, жду.]]></description>
			<pubDate>Tue, 24 Nov 2009 05:57:24 GMT</pubDate>
			<author>ivanych</author>
		</item>
	

	
		<item>
			<title>24.11.2009 05:57:09 ivanych</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/76084/#comment_2212628</guid>
			<link>http://habrahabr.ru/blogs/Git/76084/#comment_2212628</link>
			<description><![CDATA[Не понимаю, хоть убей. В чем проблема отправить бранч целиком? Что тут такого неправильного и невежливого?<br/>
<br/>
Есть где-то развернутое описание этого дела?]]></description>
			<pubDate>Tue, 24 Nov 2009 05:57:09 GMT</pubDate>
			<author>ivanych</author>
		</item>
	

	
		<item>
			<title>23.11.2009 19:34:17 cabeza</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/76084/#comment_2211658</guid>
			<link>http://habrahabr.ru/blogs/Git/76084/#comment_2211658</link>
			<description><![CDATA[«отослать правки без ребейза» я могу только в виде патча.<br/>
Либо запушить свой бранч целиком, чтобы с ним парился апстрим, что неправильно и невежливо.<br/>
С rebase`ом же я могу сделать git rebase origin/0.10.x, находясь в 0.10.x-alt, после чего переключиться обратно на 0.10.х и смерджить свои изменения — git merge 0.10.x-alt. Т.е. сделать так, чтобы у меня на руках был бранч, опережающий origin ровно на мои правки. Таким образом, мне останется только сделать push.]]></description>
			<pubDate>Mon, 23 Nov 2009 19:34:17 GMT</pubDate>
			<author>cabeza</author>
		</item>
	

	
		<item>
			<title>23.11.2009 19:29:34 smind</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/76084/#comment_2211649</guid>
			<link>http://habrahabr.ru/blogs/Git/76084/#comment_2211649</link>
			<description><![CDATA[сейчас как раз пишу о том как мы этим пользуемся в проекте, выложу как закочу.<br/>
если коротко — получается более красивая история в гите. ]]></description>
			<pubDate>Mon, 23 Nov 2009 19:29:34 GMT</pubDate>
			<author>smind</author>
		</item>
	

	
		<item>
			<title>23.11.2009 19:28:05 ivanych</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/76084/#comment_2211644</guid>
			<link>http://habrahabr.ru/blogs/Git/76084/#comment_2211644</link>
			<description><![CDATA[Простите, не понял. Ребейз чего с чем Вы сделаете? И зачем? Почему Вы не можете отослать свои правки без ребейза?]]></description>
			<pubDate>Mon, 23 Nov 2009 19:28:05 GMT</pubDate>
			<author>ivanych</author>
		</item>
	

	
		<item>
			<title>23.11.2009 19:01:02 cabeza</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/76084/#comment_2211537</guid>
			<link>http://habrahabr.ru/blogs/Git/76084/#comment_2211537</link>
			<description><![CDATA[Например, я собираю в Альте couchdb. Я клонирую апстрим. От бранча 0.10.х ответвляю 0.10.x-alt, в котором держу альт-специфичные изменения и в который время от времени мерджу апстримный 0.10.x.<br/>
Итого, если я захочу отослать обратно свои правки, я сделаю ребейз, смерджу изменения и запушу.]]></description>
			<pubDate>Mon, 23 Nov 2009 19:01:02 GMT</pubDate>
			<author>cabeza</author>
		</item>
	

	
		<item>
			<title>23.11.2009 18:45:49 ivanych</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/76084/#comment_2211468</guid>
			<link>http://habrahabr.ru/blogs/Git/76084/#comment_2211468</link>
			<description><![CDATA[А зачем это надо? Можете привести пример, когда от rebase есть польза?<br/>
<br/>
Я использую git активно, в команде, но я не могу придумать ни одной причины, по которой мне захотелось бы сделать rebase. ]]></description>
			<pubDate>Mon, 23 Nov 2009 18:45:49 GMT</pubDate>
			<author>ivanych</author>
		</item>
	

	
		<item>
			<title>23.11.2009 16:18:50 cabeza</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/76084/#comment_2210931</guid>
			<link>http://habrahabr.ru/blogs/Git/76084/#comment_2210931</link>
			<description><![CDATA[хм<br/>
rebase и есть средство подчистить историю перед мерджем, т.ч. коммиты логично удаляются.<br/>
<br/>
Если не хочется терять эти коммиты, то, наверное, да, только черри-пикать.<br/>
Как вариант, git merge --no-commit, но я сомневаюсь, что это будет быстрее-легче, чем cherry-pick.<br/>
<br/>
Может отбранчевать ветку, сделать в ней rebase с удалением неугодных коммитов и после этого окончательно смерджить с мастером? С одной стороны, это действительно проще всего, с другой — расхождение между branch и master будет только увеличиваться.]]></description>
			<pubDate>Mon, 23 Nov 2009 16:18:50 GMT</pubDate>
			<author>cabeza</author>
		</item>
	

	
		<item>
			<title>23.11.2009 15:46:42 UUSER</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/76084/#comment_2210803</guid>
			<link>http://habrahabr.ru/blogs/Git/76084/#comment_2210803</link>
			<description><![CDATA[Спасибо. Про filter-branch не знал… про rerere знал, но ни разу не пользовался.]]></description>
			<pubDate>Mon, 23 Nov 2009 15:46:42 GMT</pubDate>
			<author>UUSER</author>
		</item>
	

	
		<item>
			<title>23.11.2009 14:57:56 Exabiche</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/76084/#comment_2210611</guid>
			<link>http://habrahabr.ru/blogs/Git/76084/#comment_2210611</link>
			<description><![CDATA[Не понимаю одной вещи: как мне применить все коммиты из одной ветки в другую кроме одного или двух? Если делать git rebase -i branch master и удалить записи о ненужных коммитах, то они соответственно удаляться из branch и из master, а мне нужно чтобы в branch эти два коммита остались. Остается cherry-pick — но если по одному коммиты перечислять — это как-то медленно.]]></description>
			<pubDate>Mon, 23 Nov 2009 14:57:56 GMT</pubDate>
			<author>Exabiche</author>
		</item>
	

	
		<item>
			<title>23.11.2009 14:20:16 cabeza</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/76084/#comment_2210448</guid>
			<link>http://habrahabr.ru/blogs/Git/76084/#comment_2210448</link>
			<description><![CDATA[ну вобщем да, выше сказано<br/>
если не понятно, то вот пример:<br/>
1. забираем текущее дерево<br/>
2. создаём ветку experimental и что-то там правим<br/>
3. в это время в апстрим что-то закоммитили<br/>
4. чтобы всё гладко смерджилось, обновляем свой мастер, через rebase «освежаем» проделанную работу и тогда уже мерджим свои наработки в master.]]></description>
			<pubDate>Mon, 23 Nov 2009 14:20:16 GMT</pubDate>
			<author>cabeza</author>
		</item>
	

	
		<item>
			<title>23.11.2009 14:17:47 VlK</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/76084/#comment_2210432</guid>
			<link>http://habrahabr.ru/blogs/Git/76084/#comment_2210432</link>
			<description><![CDATA[Это позволяет иметь прямую историю, в одноу ветку «мастер».<br/>
<br/>
Например, вы ветвитесь где-нибудь. В это время происходят коммиты и в мастер, в вашу ветку. Можно слить ветки в одну — но это усложняет историю.<br/>
<br/>
А можно наложить коммиты вашей ветки поверх коммитов мастера. Получит прямая история.]]></description>
			<pubDate>Mon, 23 Nov 2009 14:17:47 GMT</pubDate>
			<author>VlK</author>
		</item>
	

	
		<item>
			<title>23.11.2009 14:04:52 smind</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/76084/#comment_2210367</guid>
			<link>http://habrahabr.ru/blogs/Git/76084/#comment_2210367</link>
			<description><![CDATA[ребэйз приводит набор ваших патчей к текущему «мастеру» или тому относительно чего вы ребэйзитесь, плюс попутно можно схлопнуть несколько мелких коммитов в один или выкинуть какие то…]]></description>
			<pubDate>Mon, 23 Nov 2009 14:04:52 GMT</pubDate>
			<author>smind</author>
		</item>
	

	
		<item>
			<title>23.11.2009 13:43:37 cr0t</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/76084/#comment_2210277</guid>
			<link>http://habrahabr.ru/blogs/Git/76084/#comment_2210277</link>
			<description><![CDATA[Спасибо! Хочу свичнуться на git полностью, поэтому сразу в закладки!]]></description>
			<pubDate>Mon, 23 Nov 2009 13:43:37 GMT</pubDate>
			<author>cr0t</author>
		</item>
	

	
		<item>
			<title>23.11.2009 13:39:11 ivanych</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/Git/76084/#comment_2210256</guid>
			<link>http://habrahabr.ru/blogs/Git/76084/#comment_2210256</link>
			<description><![CDATA[А можете подробнее сказать про rebase? Зачем это вообще нужно? ]]></description>
			<pubDate>Mon, 23 Nov 2009 13:39:11 GMT</pubDate>
			<author>ivanych</author>
		</item>
	

	
</channel>
</rss>

