Git:仅在某些机器之间共享一些更改

时间:2016-04-21 01:57:11

标签: git ignore

通常,在Git存储库中,我有一组我不想进入主仓库的更改,应该只适用于我的机器。例如,我可能有一些文档或脚本只有我认为有用,并且不希望任何其他人维护。

解决 问题很简单:把它们放在.git/info/exclude中,然后忽略它们但不告诉其他人我忽略了它们。对于仍需要维护的文件,请使用--skip-worktree标志。一切都好。

问题在于:我有几台机器 - 我的工作机器,我的家用机器,也许还有我正在迁移到的VM - 虽然这些更改不应该进入主存储库,但我希望在我的机器之间共享它们。 如何才能最好地在仅我的计算机之间共享这些个人更改,而不会冒险将其推入master分支?

2 个答案:

答案 0 :(得分:0)

作为git的DVCS的美妙之处在于,任何工作副本也可用作存储库。您可以仅在本地提交更改,也可以在分支中提交,然后在所有其他环境中将您的repo作为远程提升。这样你就不会把任何东西推到中央存储库。

如果您可以在主存储库中创建分支,那就更容易了。

但是,在这两种情况下,您必须确保如果您从master分支出来,那么如果您想要保持最新,则不断将更改合并到自定义分支中。

答案 1 :(得分:0)

我找到了一个解决方案,在我这种情况下适合我:

  • 有问题的回购存储在我的主目录中(~/src/app)。
  • 我的主目录(~)也是一个Git存储库,用于备份目的。

我正在做的是

  • 跟踪我在家庭仓库中的个人变化,
  • 在app repo中使用git update-index --skip-worktree忽略其中的更改。

(我已基本上对上面提到的一些文档或脚本执行此操作,其中忽略整个文件。)

当我想要在这些文件中对app repo进行一些更改时,这将导致一个复杂的工作流程,但我想我可以使用它。至少我不必记住每台机器的个人更改。