Хвалёный git разочаровывает с каждым днём. Особенно в условиях нестабильного коннекта.
Если в CVS или SVN на сервер можно сделать коммит "пофайлово" и пусть "за сутки", но докоммитеть всё, то git посылает ВЕСЬ коммит целиком и откатывает целиком. Посему если "сервер рвёт коннект" из-за тайм-аута, то весь процесс коммита - откатывается и всё приходится делать заново.
Может я конечно "его готовить не умею". Вот существующий локальный коммит можно разбить на несколько? Чтобы делать Push "порциями"?
Update.
Не ВСЁ ТАК плохо оказывается:
"Ну коли обратного пути нет, но переходи в директорию с веткой, где надо дробить коммит и переходи в интерактивный режим изменения истории:
git rebase -i HEAD~1 (последняя цифра - сколько коммитов назад хочешь менять)
откроется специальный режим, где надо напротив нужного коммита написать edit
далее разбивай свой коммит на много мелких:
git reset HEAD^
git add ...
git commit -m "First part"
git add ...
git commit -m "Second part"
введи продолжить, чтобы закончить интерактивный режим
git rebase --continue
После всего этого делай push в remote branch по одному;
git push <remotename> <commit SHA>:<remotebranchname>"
Я же говорю - НЕ УМЕЮ я этот git "готовить"... Руки кривые :-)
Если в CVS или SVN на сервер можно сделать коммит "пофайлово" и пусть "за сутки", но докоммитеть всё, то git посылает ВЕСЬ коммит целиком и откатывает целиком. Посему если "сервер рвёт коннект" из-за тайм-аута, то весь процесс коммита - откатывается и всё приходится делать заново.
Может я конечно "его готовить не умею". Вот существующий локальный коммит можно разбить на несколько? Чтобы делать Push "порциями"?
Update.
Не ВСЁ ТАК плохо оказывается:
"Ну коли обратного пути нет, но переходи в директорию с веткой, где надо дробить коммит и переходи в интерактивный режим изменения истории:
git rebase -i HEAD~1 (последняя цифра - сколько коммитов назад хочешь менять)
откроется специальный режим, где надо напротив нужного коммита написать edit
далее разбивай свой коммит на много мелких:
git reset HEAD^
git add ...
git commit -m "First part"
git add ...
git commit -m "Second part"
введи продолжить, чтобы закончить интерактивный режим
git rebase --continue
После всего этого делай push в remote branch по одному;
git push <remotename> <commit SHA>:<remotebranchname>"
Я же говорю - НЕ УМЕЮ я этот git "готовить"... Руки кривые :-)
Комментариев нет:
Отправить комментарий