繁体   English   中英

如何版本 .git/config 文件?

[英]How to version the .git/config file?

我有一个 .gitignore 文件,如下所示:

.*
!.gitignore

我想对我的.git/config文件进行版本控制,这样当我执行git pull我的 .git/config 文件会自动更新。

我怎样才能做到这一点?

我试过类似的东西:

.*
!.gitignore
!.git/config

但这没有用。 我知道如果我创建一个链接( ln -s .git/config configurations/git/config )我可以对其进行版本控制,但我想要一种更好的方法来自动更新原始链接。

我正在考虑创建一个硬链接( ln .git/config configurations/git/config configuration/git ),但它似乎不是最好的方法。 有没有办法避免这种情况? 对硬链接进行版本控制时,Git 会正常工作吗?

编辑:解释为什么要这样做

这样做的主要动机是我想对我的用户的主文件夹进行版本控制。 我将使用此版本控制来帮助我进行某种部署。 我想保持所有克隆同步。 如果我处理不好,就会出现冲突,我会处理好这件事。 也许我也会对另一个受保护的 git 文件进行版本控制。

你不能“版本”你的 .git/config 文件。 您可以做的是在您的工作目录中创建一个 .gitconfig 并提交它。 然后在克隆之后执行。

  cat .gitconfig >> .git/config

当然,这充满了各种潜在的问题 如果有人编辑.gitconfig怎么.gitconfig 您需要撤消.git/config ,然后在git pull之后重新追加。 如果.gitconfig在不同的分支上发生变化怎么办? 您需要撤消.git/config并在git checkout <branch>上重新附加

所以,我不建议更改.git/config 但如果你必须,你必须。

正如@Tuxdude 所说,共享.git/config本身是错误的信息。

但是Git (1.7.10+) 现在支持配置包含

因此,对于重要的选项,您可能会说将它们放在文件中: .git.config/repository.config并在.git/config放置指向它的链接,例如:

[include]
        path = ../.git.config/repository.config

我只是在 repo 的自述文件中添加了这样的建议。 只需复制/粘贴多行并对常规文件等重要设置进行版本控制就很容易了。 它还为所有 repo 用户传输更新。

.git/config文件进行版本控制是个坏主意。

Git并不让你下什么版本的.git目录,因为内容的.git是本地的存放区,以及2人来自同一个远程URL克隆,不用有下的同一组文件.git后目录克隆人。

例如,您可能只有一个名为origin远程,而其他开发人员可能将远程命名为foo东西。 另一个开发人员可能有 2 个名为barbaz遥控器。

有关远程(URL、refspec 等)、本地分支(如上游跟踪分支等)的信息存储在您的.git/config文件中。

如果你真的需要覆盖一些配置,你可以在本地编辑.git/config文件,或者如果它是一个可以全局设置的选项,请使用~/.gitconfig或等效文件。

添加到已经很好的答案,并实际回答 OP 的问题:

我正在考虑创建一个硬链接( ln .git/config configurations/git/config configuration/git ),但它似乎不是最好的方法。
有没有办法避免这种情况?
对硬链接进行版本控制时,Git 会正常工作吗?

不:

  • Git 中不表示硬链接:请参阅“ Git 和硬链接
  • 符号链接将简单地存储为带有链接文件路径的文本文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM