LINUX.ORG.RU

git или не git, или вообще как сделать такое ведение проекта?

 ,


0

4

С git у меня пока слабые отношения, и хочу задать вопрос, можно ли на нем и как такое организовать, прежде чем ударяться в более подробное изучение.

Есть проект, на Qt, у него есть стабильная версия. Я хочу от этой версии скажем сделать копию, в этой копии делать изменение функционала, и заливать обратно, просматривая при этом что изменял. При этом, пока производятся основные изменения в продублированной копии, я от исходной копии хочу сделать еще копию, сделать в ней какие-то мелкие быстрые изменения, и внести эти изменения и в основную версию, и в дорабатываемую.

Вот в git, который приделан к Qt Creator я не вижу кнопки, которая быстро могла бы сделать копию проекта в другой каталог, что бы при желании я мог запускать и основную версию, и изменяемую.

Ответ на: комментарий от Eva

нет, не стыдно. В тех темах, за которые мне платили денежку, в них не принято было пользоваться git'ом. Вот исправляюсь потихоньку.

victor79
() автор топика

а бранчи на что? и вообще, есть, вроде даже две, замечательные бесплатные книги ProGIT.. вроде даже на русском есть

anonymous
()

Что не может git, то всегда можно «добавить» скриптами, разве нет?

I-Love-Microsoft ★★★★★
()

я не вижу кнопки

это на винфак

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

В тех темах, за которые мне платили денежку, в них не принято было пользоваться git'ом.

Мозгами тоже было не принято пользоваться?

anonymous
()

Лучше уж используй frondend для Git, типо SourceTree(это для оффтопика, но есть другие для линя). Сам таким пользуюсь, но надо бы и когда-то команды выучить

Release
()

Да, гит всё умеет. Смотри git branch для «копий», git merge для слияний, git rebase для «продвинутых» слияний, git diff для просмотра изменений (между текущим состоянием и последним коммитом, между ветками, между коммитами…).

evilface ★★
()

Вот в git, который приделан к Qt Creator я не вижу кнопки, которая быстро могла бы сделать копию проекта в другой каталог

Не ту кнопку ищешь. Нужная тебе называется «создать ветку». При этом не будет происходит никакого копирования.

что бы при желании я мог запускать и основную версию, и изменяемую.

А вот тут будут проблемы. При переключении веток у тебя будет полный пересбор проекта, а это время. К счастью, это легко исправляется с помощью ccache.

ox55ff ★★★★★
()

То что ты описал это типичный workflow в гите. хотели он идеально ложится. Клонировал, находишься в мастер:

$ git status -sb
> ## master

Я хочу от этой версии скажем сделать копию

Нужно реализовать фичу которая займет время, создаешь брачнь под фичу:

git checkout -b FR-567
git status -sb
## FR-567

просматривая при этом что изменял

Просматривать изменения удобно посредством gitk

При этом, пока производятся основные изменения в продублированной копии, я от исходной копии хочу сделать еще копию

git commit "Save all my changes in current branch"
git checkout master
git status -sb
## master

Получить изменения из remote

git pull

сделать еще копию, сделать в ней какие-то мелкие быстрые изменения

git checkout -b BUG-9876
git status -sb
## BUG-9876
...
git commit -m "Fixed ..." 

и внести эти изменения и в основную версию

git checkout master
git merge BUG9876

Но я люблю линейную историю.

git checkout BUG9876
git rebase master
# Если конфликты - исправить, затем выполнить
git rebase --continue
# и так пока git status -sb будет возвращать список конфликтующих файлов

git checkout master
git merge BUG9876 --ff-only
Отправить свои изменения на remote:
git push origin master

внести эти изменения и в основную версию, и в дорабатываемую

git checkout FR-567
git rebase master
# Если конфликты - исправить, затем выполнить
git rebase --continue
# и так пока git status -sb будет возвращать список конфликтующих файлов

Приблизительно так.

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

Мозгами тоже было не принято пользоваться?

Какой чОткий дерзкий анонимус. А если у ТСа в темах было принято пользоваться, скажем, cvs, а то и Rational ClearCase, или не приведи Патрик, Microsoft SourceSafe (не надо смеяться над чужим горем, в копроративной разработке и такое бывает)? Мозги должны были подсказать, что он параллельно должен был коммитить ещё и в Git, чтобы подтвердить звание пользователя мозгов?

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

По FR-567, там кстати наверно тебе еще понадобится слитие нескольких комитов в один, значимый, который нужно отправить в основную ветку, тогда пример для слития последних трех коммитов:

git rebase -i HEAD~3
Откроется редактор который выставлен через переменную VISUAL:
pick 1111111
pick 2222222
pick 3333333
Меняешь на:
pick 1111111
squash 2222222
squash 3333333
Сохраняешь.
Может мои знания о git устарели, поправьте если что.

P.S. Перед манипуляциями с git никто не отменял мета версионный инструемент tar

Aber ★★★★★
()
Последнее исправление: Aber (всего исправлений: 1)

Я хочу от этой версии скажем сделать копию, в этой копии делать изменение функционала, и заливать обратно, просматривая при этом что изменял. При этом, пока производятся основные изменения в продублированной копии, я от исходной копии хочу сделать еще копию, сделать в ней какие-то мелкие быстрые изменения, и внести эти изменения и в основную версию, и в дорабатываемую.

Вот это всё git умеет

Вот в git, который приделан к Qt Creator я не вижу кнопки, которая быстро могла бы сделать копию проекта в другой каталог, что бы при желании я мог запускать и основную версию, и изменяемую.

Делай отдельные branch и в них работай. Это и есть твои «каталоги».

xDShot ★★★★★
()

бранчи ещё не предлагали?

anonymous
()
Ответ на: комментарий от hobbit

А если у ТСа в темах было принято пользоваться, скажем, cvs, а то и Rational ClearCase, или не приведи Патрик, Microsoft SourceSafe (...)?

Тогда ТС точно должен знать что такое ветки и должен полагать, что все современные VCS их умеют в каком-то виде...

Мозги должны были подсказать ... чтобы подтвердить звание пользователя мозгов?

... что и должны были подсказать мозги. Операция называется обобщением, в разработке без неё никак.

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