我有一些Windows脚本(即PowerShell,VBScript,批处理),这些脚本已经“发布”并已在当今的生产环境中使用,但我想将其置于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进行版本控制来轻松进行代码更新,但配置了分支,以便我的代码更改不会影响生产中的内容,直到我执行了合并。
答案 0 :(得分:1)
git允许在回购中添加其他worktrees。
您可以将文件保留在它们当前所在的分支上,并在其他目录中添加新的工作树
git worktree add <path> <committish>
(<committish>
部分通常是分支或提交哈希)
然后,您可以签出任一工作树上的任一分支,例如,将主工作树保留在必须保持原样的当前分支上,并在新添加的工作树上签出您的dev / work分支,进行拉,推,执行任何操作所有这些都不会影响现有文件系统。
这是重新克隆存储库(这可能是幼稚的路线,缺少工作树功能)的不错选择