git: фиксация воспроизведения по другому пути

#git

#git

Вопрос:

Я сделал пару коммитов в «somedir» и постоянно перебазировался во время работы — моя история линейна. Теперь я хотел бы, чтобы я не выполнял свою работу в «somedir», а в отдельной копии. Могу ли я воспроизвести свои коммиты в «anotherdir», который является идентичной копией «somedir»? (Мои коммиты находятся в локальной ветке темы, но это не важно для вопроса.)

Комментарии:

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

2. Если это два каталога в одном репозитории, почему бы вам просто не поменять местами их имена? git mv somedir tmp amp;amp; git mv anotherdir somedir amp;amp; git mv tmp anotherdir

3. @svick Они представляют два варианта одной и той же игры, которые в будущем будут расходиться и будут иметь разные функции.

4. @Andrew Это умная идея! К сожалению, там уже есть некоторые коммиты (не мешающие моим коммит). Кроме того, я бы не хотел загрязнять историю подкачкой.

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

Ответ №1:

Вы можете добавить anotherdir в качестве удаленного из somedir и нажать свои изменения.

В somedir предположении, что вызывается ветка с вашими изменениями current :

 git remote add anotherdir /path/to/anotherdir
git push anotherdir current
  

Затем anotherdir вы можете проверить ветку current .

Комментарии:

1. Это сработало бы, если somedir бы и anotherdir были репозиториями. Я предполагал, что они являются частью одного и того же репозитория. Но из вопроса не ясно, так что я могу ошибаться.

2. Ах да, я думаю, что, возможно, я неправильно понял.

3. Да, они находятся в одном репозитории. В любом случае спасибо.