![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
BRE |
![]()
Сообщение
#1
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: ![]() ![]() ![]() |
Камрады, подскажите.
![]() Начал новый проект, решил в нем использовать git. Вопрос следующий. Есть удаленный репозиторий (лежит в общей папке). Клонирую его в devel-папку. Что-то добавил, сделал commit, сделал push. Что-то добавил, сделал commit, сделал push. В devel-репозитории могу жестко откатиться, выполнив: $ git reset --hard <ревизия> А вот как бы мне в удаленном откатиться. И что будет после этого с другим devel-репозиторием, там была создана другая ветка и в ней были коммиты? |
|
|
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
В devel-репозитории могу жестко откатиться, выполнив: отправляй изменения, поставив галку "переписать существующую ветвь" Но это не нормальный режим$ git reset --hard <ревизия> И что будет после этого с другим devel-репозиторием, там была создана другая ветка и в ней были коммиты? в другом хранилище просто придётся разруливать при слиянии. У каждого хранилища свои веткиЧто-то добавил, сделал commit, сделал push. вообще так не делается. Делается так:Что-то добавил, сделал commit, сделал push. 1)создал ветвь от интерисующей ветви 2)Что-то изменил, сделал commit. ... Что-то добавил, сделал commit. 3) Убедился что всё хорошо. 4) слил свою ветвь с исходной 5) отправил исходную ветвь в общее хранилище. |
|
|
BRE |
![]()
Сообщение
#3
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: ![]() ![]() ![]() |
отправляй изменения, поставив галку "переписать существующую ветвь" Но это не нормальный режим Эээ... А как будет в командной строке? ![]() в другом хранилище просто придётся разруливать при слиянии. У каждого хранилища свои ветки Т.е. можно будет слить, даже если откатимся до момента создания этой ветки? вообще так не делается. Делается так: Это штатный режим. ![]() У меня получилось следующее. Разработка ведется на одной машине. Основная разработка происходит в linux, но к сожалению есть части которые будут доступны только в венде и их разработку приходиться делать в virtualbox'ой венде. Так вот я добавил класс в linux, сообразил, что его разработку нужно делать в венде (в linux сборка этого модуля отключена в конфигурации), с перепугу слил devel-ветку с master и сделал push, что бы я смог обновить вендовый devel-репозиторий. Но в master остались файлы этого класса, я их убрал и опять закомител master. А сейчас там две ривизии не к селу, не к городу: * Убрали ClassName * Добали ClassName Вот и хочется от этого уйти. ![]() |
|
|
Litkevich Yuriy |
![]()
Сообщение
#4
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
А как будет в командной строке? не знаю, читайте git help push, меня командная строка минимально интересует.Т.е. можно будет слить, даже если откатимся до момента создания этой ветки? конечно, т.к. в локальном хранилище свои веткис перепугу слил devel-ветку с master и сделал push, что бы я смог обновить вендовый devel-репозиторий. надо было просто отправлять эту ветку, её бы вытянул в другом хранилище и слил как надо.А сейчас там две ривизии не к селу, не к городу: не понял конечную цель* Убрали ClassName * Добали ClassName Вот и хочется от этого уйти. П.С. при любых сомнениях делай ветку от текущей, текущую сбрасывай в последнее состояние. Так у тебя будет заначка в виде допветки. у меня в некоторых хранилищах повисших веток с десяток. Есть не просят - пусть живут |
|
|
BRE |
![]()
Сообщение
#5
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: ![]() ![]() ![]() |
не понял конечную цель Если смотреть лог, то выводится два комита: 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 |
![]()
Сообщение
#6
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Одним комитом добавили, другим сразу убрали файлы для 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 |
![]()
Сообщение
#7
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: ![]() ![]() ![]() |
Эээ... А как будет в командной строке? $ git reset --hard <ревизия>$ git push --force П.С. при любых сомнениях делай ветку от текущей, текущую сбрасывай в последнее состояние. Так у тебя будет заначка в виде допветки. Зачем копить кучу не нужных веток. Иначе вывод git branch превратится в полотенце. Читать трудно, да и вообще приимуществ ни каких. После того как слил наработки в рабочую ветку, временный бранч нужно удалять
у меня в некоторых хранилищах повисших веток с десяток. Есть не просят - пусть живут |
|
|
BRE |
![]()
Сообщение
#8
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: ![]() ![]() ![]() |
$ git reset --hard <ревизия> $ git push --force Спасибо. Уже сделал. На --force сразу посмотрел, просто было страшновато, как он там все откатывать будет и что с ветками произойдет, но сделав копию bare-репозитория приступил к экспериментам. ![]() Заодно немного разобрался с reset --soft/--hard. |
|
|
Litkevich Yuriy |
![]()
Сообщение
#9
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
igor_bogomolov |
![]()
Сообщение
#10
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: ![]() ![]() ![]() |
а я его не далаю, консолью не пользуюсь, поэтому и проблем у меня нет Я наоборот, в основном пользуюсь только консолью. Изредка могу через креатор коммит сделать. Графическа оболочка гита так ни одна и не понравилась. Пользуюсь ими только если надо посмотреть "дерево" изменений.Я за чистоту в проекте и репозитории. ![]() а кто сказал что я их слил? Тогда тем более зачем они тебе? Получается у тебя много заброшенных устаревших веток, функционал которых тебе не нужен |
|
|
Litkevich Yuriy |
![]()
Сообщение
#11
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
igor_bogomolov |
![]()
Сообщение
#12
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: ![]() ![]() ![]() |
Для этого существуют системы управления проектами. У меня на работе, например, используется redmine.
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#13
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
igor_bogomolov |
![]()
Сообщение
#14
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: ![]() ![]() ![]() |
смысла не понял. Я вот про это Была идея, отличная. В текущем окружении недоделок и косяков Qt её не удалось реализовать в короткое время. ИМХО - это не затача гита. Это нужно и удобно делать при помощи "системы управления проектам". В них ты можешь назначить себе задачу, описать её, приложить код, если надо, файлы. Создать некий "оперативный план", т.е. описать в какой версии проекта или при каких условиях у тебя этот функционал должен быть реализован. Это наглядно, ты всегда можешь видеть, что тебе нужно сделать. И централизованно этим управлять, если у тебя проектов много.Оставлена до лучших времён. Например, когда проект будет переносится на новую версию Qt. Я понимаю, что "системы управления проектам" не предоставляет никаких автоматизированных средств для добавления кода в проект. Но и преимуществ гита в твоём подходе я не вижу. Ты имеешь много веток, которые очень отстали от основного проекта. Возможно структура проекта у тебя тоже уже давно изменилась. И вливать эти наработки в существующий проект будет тяжело. К тому же таким захламленным репозиторием просто труднее управлять. Со временем ты будешь забывать о существующих задачах, даже если у них вменяемый коментарий и навешан таг. В общем как то длинно получилось, и не уверен что сумел донести свою мысль. Просто для разных задач существуют свои инструменты, использование которых дает свои преимущества. |
|
|
Litkevich Yuriy |
![]()
Сообщение
#15
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
ИМХО - это не затача гита. Это нужно и удобно делать при помощи "системы управления проектам". при чём здесь управление проектом?Пишу код, работаю в системе управления версиями. Раз грабля, два грабля, стоп, оставим до лучших времён. Переключаюсь к началу ветвления, делаю новую ветку. Всё. Ни какая система управления проектами здесь ни к месту. |
|
|
molchanoviv |
![]()
Сообщение
#16
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 597 Регистрация: 18.7.2008 Из: Саратов Пользователь №: 238 Спасибо сказали: 41 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#17
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
igor_bogomolov |
![]()
Сообщение
#18
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(Litkevich Yuriy) переключи раскладку на русскую, и стандартные кнопки копирования/вставки работать перестанут. Проверил на том же git gui - копирование/вставка работают в обоих раскладках. |
|
|
molchanoviv |
![]()
Сообщение
#19
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 597 Регистрация: 18.7.2008 Из: Саратов Пользователь №: 238 Спасибо сказали: 41 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 8.6.2025, 6:50 |