Re[4]: Git: спрятанные головы?
От: Bluebarry  
Дата: 18.12.14 09:03
Оценка:
Здравствуйте, CaptainFlint, Вы писали:

CF>Веток с двумя головами не бывает. rem/master станет указывать на master из второго репа, первый при этом затеряется.

CF> Все висящие коммиты для гита — мусор, который рано или поздно будет удалён garbage collector'ом.

Это плохо вяжется с радостными лозунгами, что в Гите невозможно ничего потерять.
Например, из Pro Git:

As in any VCS, you can lose or mess up changes you haven’t committed yet; but after you commit a snapshot into Git, it is very difficult to lose, especially if you regularly push your database to another repository.


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

Опишу свой workflow для отдельного проекта:

Сначала я создаю репозиторий для проекта.
Я работаю на 3-4 компьютерах, плюс в нескольких виртуалках — для каждого случая создаю клон этого репозитория. Итого 3-10 рабочих клонов (1-2 реально рабочих, остальные — редко используемые). Эти клоны имеют рабочие каталоги, в них я работаю, в них я делаю коммиты.

На каждом компьютере есть директория Myrepos, в которой лежит репозиторий без рабочего каталога.

Синхронизация между компьютерами осуществляется с помощью флешки. На флешке есть директория Myrepos, в ней лежит репозиторий без рабочего каталога.

Периодически я делаю hg pull (иногда hg push) между двумя репозиториями на одном компьютере, между компьютером и флешкой. В результате, изменения сделанные в каком-то репозитории, постепенно расползаются по остальным репозиториям. Все репозитории находятся примерно в одном состоянии, и содержат практически все коммиты. И я полностью уверен, что ничего потеряться не может.
Изредка бывает, что я сделаю какое-то незначительное изменение в одном из редко используемых репозиториев, и забуду про него. Но все равно, рано или поздно, я сделаю hg pull из этого репозитория, и забытый коммит разойдется по всем остальным репозиториям — в них появится новая ветка. Рано или поздно, я эту ветку замечу (или глазами, или при эпизодическом hg heads) и закрою ее, возможно, смерджив с текущим коммитом.

В меркуриале, как и в гите, в репозитории можно прописать алиасы — пути к другим репозиториям. При клонировании автоматически создается алиас default. Но я этим практически не пользуюсь, поскольку каждый репозиторий может синхронизироваться с несколькими другими репозиториями, а их пути непостоянны — флешка может быть то диском E, то диском F, флешка может втыкаться в разные компьютеры.

Сейчас вот разбираюсь с гитом, и думаю, не перейти ли мне на него? И удобно ли использовать гит для текущего workflow? Или, может, адаптировать workflow? Пока что, мне кажется, что у меня будут постоянно теряться коммиты.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.