切换分支,不更改工作目录中的文件

时间:2019-06-19 10:40:15

标签: git

我有一些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进行版本控制来轻松进行代码更新,但配置了分支,以便我的代码更改不会影响生产中的内容,直到我执行了合并。

1 个答案:

答案 0 :(得分:1)

git允许在回购中添加其他worktrees

您可以将文件保留在它们当前所在的分支上,并在其他目录中添加新的工作树

git worktree add <path> <committish>

<committish>部分通常是分支或提交哈希)

然后,您可以签出任一工作树上的任一分支,例如,将主工作树保留在必须保持原样的当前分支上,并在新添加的工作树上签出您的dev / work分支,进行拉,推,执行任何操作所有这些都不会影响现有文件系统。

这是重新克隆存储库(这可能是幼稚的路线,缺少工作树功能)的不错选择