Git. Как откатить удаленный репозиторий? |
Здравствуйте, гость ( Вход | Регистрация )
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 |
В devel-репозитории могу жестко откатиться, выполнив: отправляй изменения, поставив галку "переписать существующую ветвь" Но это не нормальный режим$ git reset --hard <ревизия> И что будет после этого с другим devel-репозиторием, там была создана другая ветка и в ней были коммиты? в другом хранилище просто придётся разруливать при слиянии. У каждого хранилища свои веткиЧто-то добавил, сделал 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 |
отправляй изменения, поставив галку "переписать существующую ветвь" Но это не нормальный режим Эээ... А как будет в командной строке? в другом хранилище просто придётся разруливать при слиянии. У каждого хранилища свои ветки Т.е. можно будет слить, даже если откатимся до момента создания этой ветки? вообще так не делается. Делается так: Это штатный режим. У меня получилось следующее. Разработка ведется на одной машине. Основная разработка происходит в 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 |
А как будет в командной строке? не знаю, читайте git help push, меня командная строка минимально интересует.Т.е. можно будет слить, даже если откатимся до момента создания этой ветки? конечно, т.к. в локальном хранилище свои веткис перепугу слил devel-ветку с master и сделал push, что бы я смог обновить вендовый devel-репозиторий. надо было просто отправлять эту ветку, её бы вытянул в другом хранилище и слил как надо.А сейчас там две ривизии не к селу, не к городу: не понял конечную цель* Убрали ClassName * Добали ClassName Вот и хочется от этого уйти. П.С. при любых сомнениях делай ветку от текущей, текущую сбрасывай в последнее состояние. Так у тебя будет заначка в виде допветки. у меня в некоторых хранилищах повисших веток с десяток. Есть не просят - пусть живут |
|
|
BRE |
26.9.2010, 15:31
Сообщение
#5
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
не понял конечную цель Если смотреть лог, то выводится два комита: 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, 18:17
Сообщение
#6
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Одним комитом добавили, другим сразу убрали файлы для 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 |
Эээ... А как будет в командной строке? $ git reset --hard <ревизия>$ git push --force П.С. при любых сомнениях делай ветку от текущей, текущую сбрасывай в последнее состояние. Так у тебя будет заначка в виде допветки. Зачем копить кучу не нужных веток. Иначе вывод git branch превратится в полотенце. Читать трудно, да и вообще приимуществ ни каких. После того как слил наработки в рабочую ветку, временный бранч нужно удалять
у меня в некоторых хранилищах повисших веток с десяток. Есть не просят - пусть живут |
|
|
BRE |
26.9.2010, 18:35
Сообщение
#8
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
$ 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, 19:14
Сообщение
#10
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
а я его не далаю, консолью не пользуюсь, поэтому и проблем у меня нет Я наоборот, в основном пользуюсь только консолью. Изредка могу через креатор коммит сделать. Графическа оболочка гита так ни одна и не понравилась. Пользуюсь ими только если надо посмотреть "дерево" изменений.Я за чистоту в проекте и репозитории. а кто сказал что я их слил? Тогда тем более зачем они тебе? Получается у тебя много заброшенных устаревших веток, функционал которых тебе не нужен |
|
|
Текстовая версия | Сейчас: 28.1.2025, 16:58 |