crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> Git. Как откатить удаленный репозиторий?
BRE
  опции профиля:
сообщение 26.9.2010, 12:43
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Камрады, подскажите. :)
Начал новый проект, решил в нем использовать git.

Вопрос следующий.
Есть удаленный репозиторий (лежит в общей папке).
Клонирую его в devel-папку.
Что-то добавил, сделал commit, сделал push.
Что-то добавил, сделал commit, сделал push.

В devel-репозитории могу жестко откатиться, выполнив:
$ git reset --hard <ревизия>

А вот как бы мне в удаленном откатиться. И что будет после этого с другим devel-репозиторием, там была создана другая ветка и в ней были коммиты?

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 26.9.2010, 13:27
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(BRE @ 26.9.2010, 16:43) *
В devel-репозитории могу жестко откатиться, выполнив:
$ git reset --hard <ревизия>
отправляй изменения, поставив галку "переписать существующую ветвь" Но это не нормальный режим

Цитата(BRE @ 26.9.2010, 16:43) *
И что будет после этого с другим devel-репозиторием, там была создана другая ветка и в ней были коммиты?
в другом хранилище просто придётся разруливать при слиянии. У каждого хранилища свои ветки

Цитата(BRE @ 26.9.2010, 16:43) *
Что-то добавил, сделал commit, сделал push.
Что-то добавил, сделал commit, сделал push.
вообще так не делается. Делается так:
1)создал ветвь от интерисующей ветви
2)Что-то изменил, сделал commit.
...
Что-то добавил, сделал commit.
3) Убедился что всё хорошо.
4) слил свою ветвь с исходной
5) отправил исходную ветвь в общее хранилище.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 26.9.2010, 13:52
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(Litkevich Yuriy @ 26.9.2010, 14:27) *
отправляй изменения, поставив галку "переписать существующую ветвь" Но это не нормальный режим

Эээ... А как будет в командной строке? :)

Цитата(Litkevich Yuriy @ 26.9.2010, 14:27) *
в другом хранилище просто придётся разруливать при слиянии. У каждого хранилища свои ветки

Т.е. можно будет слить, даже если откатимся до момента создания этой ветки?

Цитата(Litkevich Yuriy @ 26.9.2010, 14:27) *
вообще так не делается. Делается так:

Это штатный режим. :)
У меня получилось следующее. Разработка ведется на одной машине. Основная разработка происходит в linux, но к сожалению есть части которые будут доступны только в венде и их разработку приходиться делать в virtualbox'ой венде. Так вот я добавил класс в linux, сообразил, что его разработку нужно делать в венде (в linux сборка этого модуля отключена в конфигурации), с перепугу слил devel-ветку с master и сделал push, что бы я смог обновить вендовый devel-репозиторий.
Но в master остались файлы этого класса, я их убрал и опять закомител master.
А сейчас там две ривизии не к селу, не к городу:
* Убрали ClassName
* Добали ClassName
Вот и хочется от этого уйти. :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 26.9.2010, 15:18
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(BRE @ 26.9.2010, 17:52) *
А как будет в командной строке?
не знаю, читайте git help push, меня командная строка минимально интересует.
Цитата(BRE @ 26.9.2010, 17:52) *
Т.е. можно будет слить, даже если откатимся до момента создания этой ветки?
конечно, т.к. в локальном хранилище свои ветки
Цитата(BRE @ 26.9.2010, 17:52) *
с перепугу слил devel-ветку с master и сделал push, что бы я смог обновить вендовый devel-репозиторий.
надо было просто отправлять эту ветку, её бы вытянул в другом хранилище и слил как надо.
Цитата(BRE @ 26.9.2010, 17:52) *
А сейчас там две ривизии не к селу, не к городу:
* Убрали ClassName
* Добали ClassName
Вот и хочется от этого уйти.
не понял конечную цель

П.С. при любых сомнениях делай ветку от текущей, текущую сбрасывай в последнее состояние. Так у тебя будет заначка в виде допветки.
у меня в некоторых хранилищах повисших веток с десяток. Есть не просят - пусть живут
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 26.9.2010, 15:31
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(Litkevich Yuriy @ 26.9.2010, 16:18) *
не понял конечную цель

Если смотреть лог, то выводится два комита:
26/09/10 09:10:00 * Убрали ClassName
26/09/10 09:00:00 * Добавили ClassName
25/09/10 22:00:00 * Важные изменения.
....

Одним комитом добавили, другим сразу убрали файлы для ClassName. И все это в master. Не эстетично, вот и хочу откатить master до "Важные изменения".

Цитата(Litkevich Yuriy @ 26.9.2010, 16:18) *
П.С. при любых сомнениях делай ветку от текущей, текущую сбрасывай в последнее состояние. Так у тебя будет заначка в виде допветки.
у меня в некоторых хранилищах повисших веток с десяток. Есть не просят - пусть живут

Нужно нарабатывать новые привычки. Ок, спасибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 26.9.2010, 18:17
Сообщение #6


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(BRE @ 26.9.2010, 19:31) *
Одним комитом добавили, другим сразу убрали файлы для ClassName.
а нужно получить:
26/09/10 09:10:00 * Убрали ClassName
25/09/10 22:00:00 * Важные изменения.

Т.е. минус промежуточное? Ну в принципе почистить можно.
делаешь сейчас от мастера ветку, мастера сбрасываешь на - 26/09/10 09:10:00 * Убрали ClassName
делаешь копирование изменения (cherrypick) для состояния - 25/09/10 22:00:00 * Важные изменения.
тем самым в мастере получаешь:
26/09/10 09:10:00 * Убрали ClassName
25/09/10 22:00:00 * Важные изменения.

всё


П.С. всю эту процедуру (и особенно cherrypick) удобнее делать в GitTk
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 26.9.2010, 18:19
Сообщение #7


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


Цитата(BRE @ 26.9.2010, 14:52) *
Эээ... А как будет в командной строке?
$ git reset --hard <ревизия>
$ git push --force
Цитата(Litkevich Yuriy @ 26.9.2010, 16:18) *
П.С. при любых сомнениях делай ветку от текущей, текущую сбрасывай в последнее состояние. Так у тебя будет заначка в виде допветки.
у меня в некоторых хранилищах повисших веток с десяток. Есть не просят - пусть живут
Зачем копить кучу не нужных веток. Иначе вывод git branch превратится в полотенце. Читать трудно, да и вообще приимуществ ни каких. После того как слил наработки в рабочую ветку, временный бранч нужно удалять
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 26.9.2010, 18:35
Сообщение #8


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(igor_bogomolov @ 26.9.2010, 19:19) *
$ git reset --hard <ревизия>
$ git push --force

Спасибо.
Уже сделал. На --force сразу посмотрел, просто было страшновато, как он там все откатывать будет и что с ветками произойдет, но сделав копию bare-репозитория приступил к экспериментам. :)
Заодно немного разобрался с reset --soft/--hard.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 26.9.2010, 18:55
Сообщение #9


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(igor_bogomolov @ 26.9.2010, 22:19) *
Иначе вывод git branch превратится в полотенце
а я его не далаю, консолью не пользуюсь, поэтому и проблем у меня нет

Цитата(igor_bogomolov @ 26.9.2010, 22:19) *
После того как слил наработки в рабочую ветку,
а кто сказал что я их слил?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 26.9.2010, 19:14
Сообщение #10


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


Цитата(Litkevich Yuriy @ 26.9.2010, 19:55) *
а я его не далаю, консолью не пользуюсь, поэтому и проблем у меня нет
Я наоборот, в основном пользуюсь только консолью. Изредка могу через креатор коммит сделать. Графическа оболочка гита так ни одна и не понравилась. Пользуюсь ими только если надо посмотреть "дерево" изменений.

Я за чистоту в проекте и репозитории. :)

Цитата(Litkevich Yuriy @ 26.9.2010, 19:55) *
а кто сказал что я их слил?
Тогда тем более зачем они тебе? Получается у тебя много заброшенных устаревших веток, функционал которых тебе не нужен
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.3.2024, 23:18