ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] [git-*] add --patch, stash, rebase --interactive
@ 2010-01-02 10:21 Michael Shigorin
  2010-01-07  9:51 ` Денис Смирнов
  0 siblings, 1 reply; 6+ messages in thread
From: Michael Shigorin @ 2010-01-02 10:21 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Fri, Jan 01, 2010 at 01:26:15PM +0300, Денис Смирнов wrote:
> >> Переписывание истории -- один из очень ценных инструментов в
> >> git, позволяющий публиковать красивые репозитории а не
> >> нечитаемый кошмар :)
> MS> Напомню также: http://tomayko.com/writings/the-thing-about-git
> MS> (git add --patch, git rebase --interactive, git stash)
> Вот к этим волшебным приемам пока не привык :(

=== git add --patch ===
Например, налепил на скору руку коммитов для фиксации состояния
и читабельного git diff, а потом затарил на всякий, reset --soft
на последний нормальный коммит, делаешь git status и смотришь:
этот файлик целиком git add, а в этом правки, которые растащить
по разным коммитам бы надо, вот его git add --patch и по hunk'ам
принимаешь или оставляешь на потом.

Набил будущий коммит в индекс, git commit и дальше по git diff.

=== git stash ===
Делаешь что-то и либо откладываешь, либо мысль пришла,
либо заметил, что у майнтейнера гит обновился и надо бы
сперва смержиться, а потом продолжать -- но ещё не дописал
"до точки" и коммит делать не хочется, можно забыть потом
переделать.

Запихиваешь (stash) на "полку" всё незакоммиченное, делаешь
мыслю, мержишь апстрим либо что ещё там -- и git stash apply,
который сбегает в заначку и приспособит её поверх текущего
состояния.  Только в случае с "откладываешь" перед apply стоит
git stash list, вдруг там больше одного набилось.

=== git rebase --interactive ===
А вот этого зверя раз или два попробовал, но у меня обычно
не бывает надобности в том, что он позволяет -- в т.ч.
редактирование последовательности коммитов, а также их слияние
или разбиение -- перевод куска по ссылке со ссылки выше:

Пусть надо переработать 10 последних патчей, делаем:

   $ git rebase -i HEAD~10

что запустит $EDITOR и покажет нечто вроде:

   # Rebasing 16d3800..14f3d11 onto 16d3800 
   # 
   # Commands: 
   #  pick = use commit 
   #  edit = use commit, but stop for amending 
   #  squash = use commit, but meld into previous commit 
   # 
   # If you remove a line here THAT COMMIT WILL BE LOST. 
   # 
   pick 6270640 Simplify write_tree using strbuf's. 
   pick 27c528a Further strbuf re-engineering. 
   pick fd82c9a Eradicate yet-another-buffer implementation in buitin-rerere.c 
   pick eee488f More strbuf uses in cache-tree.c. 
   pick 16878b5 Add strbuf_rtrim and strbuf_insert. 
   pick e9081af Change semantics of interpolate to work like snprintf. 
   pick 99c3ef5 Rework pretty_print_commit to use strbufs instead of custom buffers. 
   pick 203db5d Use strbuf_read in builtin-fetch-tool.c. 
   pick a20d939 Use strbufs to in read_message (imap-send.c), custom buffer--. 
   pick 14f3d11 Replace all read_fd use with strbuf_read, and get rid of it.
   ~
   ~

Здесь можно заменить pick на edit, если хочется поменять
что-нибудь в коммите, или на squash, чтобы объединить его
с тем, который строчкой выше.

Подсказка не говорит явно, но возможно также и изменять
порядок коммитов.

-- 
 ---- WBR, Michael Shigorin <mike@altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [devel] [git-*] add --patch, stash, rebase --interactive
  2010-01-02 10:21 [devel] [git-*] add --patch, stash, rebase --interactive Michael Shigorin
@ 2010-01-07  9:51 ` Денис Смирнов
  2010-01-07 15:34   ` Michael Shigorin
  0 siblings, 1 reply; 6+ messages in thread
From: Денис Смирнов @ 2010-01-07  9:51 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 382 bytes --]

On Sat, Jan 02, 2010 at 12:21:40PM +0200, Michael Shigorin wrote:
>> Вот к этим волшебным приемам пока не привык :(
MS> === git add --patch ===

Судя по формату это wiki-разметка. Намек на то, чтобы я куда-то выложил,
или ты это откуда-то взял?

-- 
С уважением, Денис

http://freesource.info
----------------------------------------------------------------------------

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [devel] [git-*] add --patch, stash, rebase --interactive
  2010-01-07  9:51 ` Денис Смирнов
@ 2010-01-07 15:34   ` Michael Shigorin
  2010-01-09 11:49     ` Денис Смирнов
  0 siblings, 1 reply; 6+ messages in thread
From: Michael Shigorin @ 2010-01-07 15:34 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Thu, Jan 07, 2010 at 12:51:24PM +0300, Денис Смирнов wrote:
> >> Вот к этим волшебным приемам пока не привык :(
> MS> === git add --patch ===
> Судя по формату это wiki-разметка. Намек на то, чтобы я куда-то
> выложил, или ты это откуда-то взял?

Не взял, а написал -- но это всё же письмо в контексте треда.
Как бы подобное структурировать на вики -- смотрю на завалы
в округе [[Git]] и пока не знаю.  Там кросс-наслоения древнего
и актуального пополам с git/git.alt.

-- 
 ---- WBR, Michael Shigorin <mike@altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [devel] [git-*] add --patch, stash, rebase --interactive
  2010-01-07 15:34   ` Michael Shigorin
@ 2010-01-09 11:49     ` Денис Смирнов
  2010-01-09 15:47       ` [devel] [wiki] " Michael Shigorin
  0 siblings, 1 reply; 6+ messages in thread
From: Денис Смирнов @ 2010-01-09 11:49 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 757 bytes --]

On Thu, Jan 07, 2010 at 05:34:44PM +0200, Michael Shigorin wrote:

MS> Не взял, а написал -- но это всё же письмо в контексте треда.
MS> Как бы подобное структурировать на вики -- смотрю на завалы
MS> в округе [[Git]] и пока не знаю.  Там кросс-наслоения древнего
MS> и актуального пополам с git/git.alt.

Ох... Я могу разве что повторить мою старую идею -- неидеально оформленный
контент _лучше_ чем отсутствие контента. Суть wiki в том, что можно
плюхать такой контент. Глядишь будет время у тебя или кого-нибудь другого
-- улучшат.

Главное -- контент, оформление, структурирование и вылизывание --
вторично.

-- 
С уважением, Денис

http://freesource.info
----------------------------------------------------------------------------

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [devel] [wiki] Re: [git-*] add --patch, stash, rebase --interactive
  2010-01-09 11:49     ` Денис Смирнов
@ 2010-01-09 15:47       ` Michael Shigorin
  2010-01-11 16:53         ` Денис Смирнов
  0 siblings, 1 reply; 6+ messages in thread
From: Michael Shigorin @ 2010-01-09 15:47 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Sat, Jan 09, 2010 at 02:49:02PM +0300, Денис Смирнов wrote:
> Главное -- контент, оформление, структурирование и вылизывание --
> вторично.

Подрихтуй тогда: http://www.altlinux.org/Git/refactoring

-- 
 ---- WBR, Michael Shigorin <mike@altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [devel] [wiki] Re: [git-*] add --patch, stash, rebase --interactive
  2010-01-09 15:47       ` [devel] [wiki] " Michael Shigorin
@ 2010-01-11 16:53         ` Денис Смирнов
  0 siblings, 0 replies; 6+ messages in thread
From: Денис Смирнов @ 2010-01-11 16:53 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 280 bytes --]

On Sat, Jan 09, 2010 at 05:47:26PM +0200, Michael Shigorin wrote:

MS> Подрихтуй тогда: http://www.altlinux.org/Git/refactoring

Добавил чуток.

-- 
С уважением, Денис

http://freesource.info
----------------------------------------------------------------------------

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2010-01-11 16:53 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-01-02 10:21 [devel] [git-*] add --patch, stash, rebase --interactive Michael Shigorin
2010-01-07  9:51 ` Денис Смирнов
2010-01-07 15:34   ` Michael Shigorin
2010-01-09 11:49     ` Денис Смирнов
2010-01-09 15:47       ` [devel] [wiki] " Michael Shigorin
2010-01-11 16:53         ` Денис Смирнов

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git