LINUX.ORG.RU

[чайник] как в git'е откатиться непосредственно до commit?

 


0

2

Сценарий

1) Меняем нечто
2) git status: смотрим на изменения (куча недобавленных, удаленных и измененных файлов)
3) git add .
4) git commit -a -m «добавить НЕЧТО»
5) git log: смотрим на новый коммит

Как кошерно окотиться до состояния 2?
(Не убить коммит к чертям, не перетереть, не аменднуть его, а именно окотиться до пункта 2, включая историю).
Если есть какой-то магический ключ, или готовый скипт, поделитесь плз.

+ можно еще задавать вопросы по гиту, или это цугундер, убивающий /development?

★★★★☆

Последнее исправление: stevejobs (всего исправлений: 2)

можно еще задавать вопросы по гиту

Баба яга не против. Иногда можно чему-нибудь научиться.

baverman ★★★
()
Ответ на: комментарий от maxcom

на самом деле проблема сложнее: э

нужно смотреть разницу между текущим незакоммитанным состоянием и SVN. Что-то типа hg outgoing

хочу сделать это так:

1) иметь «чистый» бранч, связанный с SVN, в котором работать нельзя, только рибэйзать его с апстрима
2) закоммитать текущую работу во временный коммит в «рабочем» бранче
3) переключиться на чистый бранч
4) рибэйзнуть этот чистый бранч из SVN
5) сравнить со временным коммитом в рабочем бранче
6) переключиться назад в рабочий бранч
7) ресетнуть временный коммит назад

знаешь какую-нибудь более годную идею?

(мб, нужно выделить в отдельный топик..)

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от maxcom

еще можно сделать центральный общий на команду гит, а все девелоперские машины уже расово-чистые, без git svn, но это гемор, быстро не получится :(

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от stevejobs

так ведь переключить бранч нельзя, предварительно не закоммитав ченджи?

А ты пробовал? И какую ошибку выдает?

К тому же, если нужно временно куда-то схоронить рабочую копию, гораздо легче использовать git stash/git stash pop.

baverman ★★★
()

Как кошерно окотиться

Суть такова: сначала ищещь кота...

buddhist ★★★★★
()
Ответ на: комментарий от maxcom

Люди хотят видеть outgoing changes и incoming changes до того, как они попали в центральный репозиторий.

При этом центральный репозиторий - SVN, а мы работаем с ним с помощью переходника git svn.

То есть, нужен дифф между удаленным SVN и локальной рабочией копией git.

(если бы был дифф уже закоммитанных изменений между git и git, вопроса вообще бы не существовало)

(лично мне это нафиг не нужно, но мне нужно помочь чувакам из команды, которые хотят странного ;)

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от baverman

> если нужно временно куда-то схоронить рабочую копию, гораздо легче использовать git stash/git stash pop.

git stash активно используется другими скриптами. Например, при переключении между бранчами они накатывают соответствующие изменения из стэша. Когда-то писал об этом здесь (с тех пор количество всяких разностей увеличилось): http://users.livejournal.com/__hedin/301070.html

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от maxcom

да, пока через git-svn

(есть идея через некоторое время сделать центральный git-сервер, который будет автоматически разлинеивать историю, переподписывать коммиты, итп, чтобы отгородить людей от необходимости самостоятельно взаимодействовать с svn... но это займет слишком дофига времени, чтобы делать это прямо сейчас)

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от stevejobs

не понятно что мешает коммитить изменения. И потом обновить remote branch можно и с «грязной» рабочей копией

maxcom ★★★★★
()
Ответ на: комментарий от stevejobs

ну так коммитьтесь спокойно через commit, потом обновляйте remote (git svn fetch помоему), сравнивайте с ним и комитьте коммиты в svn через dcommit/rebase

maxcom ★★★★★
()
Ответ на: комментарий от maxcom

> И потом обновить remote branch можно и с «грязной» рабочей копией

ну так коммитьтесь спокойно через commit, потом обновляйте remote (git svn fetch помоему), сравнивайте с ним и комитьте коммиты в svn через dcommit/rebase


ок, так и сделаю :)
это не совсем то, что делает mercurial... ну да и фиг с ним
завернуть в скрипт «git incoming» и «git outgoing» и забыть
спасибо :)

stevejobs ★★★★☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.