我如何在 git 的其他路径上备份/版本控制我的文件(具有 IDE 设置)?

Posted

技术标签:

【中文标题】我如何在 git 的其他路径上备份/版本控制我的文件(具有 IDE 设置)?【英文标题】:How could I backup/version control my file (having IDE settings) at some other path in git? 【发布时间】:2018-05-23 17:23:33 【问题描述】:

我可能没有很好地解释我的问题,所以让我举个例子。

我在windows10 上使用Bitbucket 进行版本控制和备份。

我的 IDE,Intellij 有一个 workspace.xml 文件,其中包含一些运行构建的配置。它的路径是baseDir/something/something/.idea/workspace.xml。我想支持它/版本控制它,这样当我搬到一个新的工作站时,我可以用这个覆盖默认的workspace.xml 并拥有我的所有配置。

我是否可以将workspace.xml 文件备份到Bitbucket 中baseDir/something/something/.idea/workspace.xml 以外的路径,例如。 baseDir/IDESettings/idea/workspace.xml?

如果我在本地机器上更改baseDir/something/something/.idea/workspace.xml(比如添加或更改新的构建配置),应该在baseDir/IDESettings/idea/workspace.xml 中创建一个新版本,然后我移动到一台新机器并安装 IntelliJ IDE,然后是 @987654332应该使用来自baseDir/IDESettings/idea/workspace.xml 的@。

我猜我可能不得不使用符号链接,但如果有人能证实这一点或提出替代方案,我将不胜感激。

【问题讨论】:

为什么必须先备份然后再进行版本控制?你不能直接提交.idea/workspace.xml吗? 对不起,我的意思是一样的。基本上提交workspace.xml,但不在.idea/,而是在其他路径。 嗯,这就是我的问题。为什么不直接在.idea/ 下提交呢? 因为我担心在新机器上,当我下载repo时,我也会得到.idea/workspace.xml。现在,当我将项目导入 IDE(在我的新机器中)时,IDE 可能会覆盖现有的 .idea/workspace.xml 是的,但是在你导入它之后,如果 IDE 改变了它,你总是可以从 repo 中检查出来。我认为 IDE 不会再次覆盖它,直到您真正更改某些内容。 【参考方案1】:

或提出替代方案。

使用内容过滤器驱动程序 (smudge/clean process),如“GameMaker Studio 2 collaboration between windows and osx”中所述

smudge 脚本可以应用于您的存储库中的任何文件,并在 git checkout 上自动生成一个私有(非跟踪文件),如 baseDir/something/something/.idea/workspace.xml,具体取决于您的机器。

干净的脚本会在 git commit 上将该私有文件保存在您的 Git 存储库文件中。

【讨论】:

以上是关于我如何在 git 的其他路径上备份/版本控制我的文件(具有 IDE 设置)?的主要内容,如果未能解决你的问题,请参考以下文章

git的使用总结

Git详解之一:Git起步

git 使用

git 与 svn的区别

分布式版本控制系统(git远程管理)

Git