保持不同分支的本地版本的文件变体

时间:2018-06-17 13:50:58

标签: git

我对Github很新。

我有一个我正在开发的脚本,其中我对某些变量有不同的值,在某些情况下还有代码变体。

我发现如果我有一个主分支和另一个分支,如果我打开一个cmd窗口,我可以在一个分支中的脚本版本和另一个分支之间来回切换(git checkout mastergit checkout alternatebranch)。我的资源管理器中的文件是同一个文件,我有一组存储库文件,但根据我在本地的分支,我根据master或alternativebranch中的工作有不同的可见代码,以及我是否有m&m; m '指向'到一个分支或另一个分支。

如果我想同时运行脚本版本(比如在不同的IDE实例中使用Python),我该如何使用github文件来管理它?

我正在开发一个Windows 7环境,该脚本在Python 2.7中,我使用Spyder IDE。

提前致谢。

1 个答案:

答案 0 :(得分:0)

简短的回答是Git不会直接帮助您 - 但请参阅下面的git worktree add

如果您的程序从工作树中读取和/或写入名为./control.info的文件,则./control.info的内容由您的操作系统和程序决定。当你告诉它时,Git只会将内容写入工作树,或者从工作树中读出内容 - 所有 Git的文件都以特殊的压缩格式存储,只读正确的存储库和Git索引中的读/写。

Git使用索引中的任何内容进行新提交。当您在文件上使用git add时,您告诉Git将文件从工作树(它具有普通文件的正常,未压缩格式)复制到索引中,将其压缩为特殊的仅Git格式。当你使用git commit时,你告诉Git将索引打包成永久提交,你的名字是作者和提交者,依此类推。

当您运行git checkout <commit>时,Git会在索引中找出哪些文件必须更改,并在工作树中作为奖励副作用,以便从任何提交切换你现在已经到了给定的<commit>。 Git会将更新的文件写入其索引(这非常快),同时将工作树(稍微慢一些)写入,现在您可以将文件放在非Git程序可用的表单中。

Git,因为版本2.5 提供了一个新命令git worktree,它可以向一个(共享)存储库添加额外的工作树。使用此技巧,您可以在分支master的顶端检出一个工作树,并在另一个位置检查单独的工作树,在分支alternatebranch的尖端检出:< / p>

git checkout master
git worktree add /C/path/to/different/dir/project alternatebranch
例如

git worktree进入以来,git worktree已有修复,但最大的修复是Git 2.6,因此2.6或更高版本最适合使用<menu>