Переключение веток без изменения файлов в рабочем каталоге - PullRequest
1 голос
/ 19 июня 2019

У меня есть Windows-скрипты (то есть PowerShell, VBScript, Batch), которые уже «живы» и используются сегодня в производстве, но я бы хотел поставить их под контроль версий git.

Каждый скрипт находитсяв своей собственной папке, и они вызываются из этого места.

Примеры этих вызовов следующие:

powershell C:\Scripts\MyScript1\MyScript1.ps1
cscript C:\Scripts\MyScript2\MyScript2.vbs
C:\Scripts\MyScript3\MyScript3.bat

При необходимости я бы хотел иметь возможность ветвиться и вносить изменения в код без прерывания производственных процессов.

Используя git, как я могу переключать ветки, не меняя файлы в рабочем каталоге?

Предположим, я запускаю следующие команды для MyScript1

cd C:\Scripts\MyScript1\
git init
git add .
git commit -m "baseline prod script"
git branch NewFeature
git checkout NewFeature

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

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

1 Ответ

1 голос
/ 19 июня 2019

Git допускает дополнительные рабочие деревья в репо.

Вы можете сохранить свои файлы в той ветке, в которой они находятся, и добавить новое рабочее дерево в другой каталог

git worktree add <path> <committish>

(часть <committish> обычно представляет собой ветвь или хеш коммита)

Затем вы можете извлекать любую ветку на любом рабочем дереве, например, сохранять ваше основное рабочее дерево в текущей ветви, которую вы должны оставить как есть, и извлекать свою ветку dev / work на новом добавленном рабочем дереве, тянуть, толкать, делать все, что угодно все, без ущерба для существующей файловой системы.

Это хорошая альтернатива простому повторению репо (что могло бы быть наивным маршрутом, без функции рабочих деревьев)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...