如何在Git中共享配置文件?

15

我有一些编辑器设置,希望能在所有的代码库中使用。如果用户定义了自己的设置,那么它应该覆盖默认设置。

我想这么做是因为我有一个班级,每个学生都克隆代码库。通常他们会忘记设置核心编辑器并在vi中瞎搞,最终导致仓库崩溃,就好像他们附有诅咒般的魔力。

既然在HOME目录下可以使用它,我尝试在我的代码库目录下使用.gitconfig文件,就像我设置.gitignore一样,但似乎不起作用。

编辑:

  • --global 允许用户设置自己的首选项来覆盖代码库中的设置,但它不允许用户在克隆代码库时获取代码库的配置。
  • .git/config 文件在克隆代码库后不会被共享。

3
好像正确的解决方案是教育你的学生如何使用EDITOR、VISUAL和GIT_EDITOR。这是任何情况下都应该具备的良好基础知识。 - William Pursell
2
如果你有足够的时间与每个学生单独相处,教育就很容易。但实际情况并非如此。我更愿意寻找自动化解决方案,并将时间花在更重要的事情上。 - Bite code
4个回答

5
使用rsync或tar/untar来分发您的存储库,而不是使用“git clone”,因为正如您所看到的那样,它不会复制存储库特殊文件。

2

我通过将配置文件移动到工作目录来进行版本控制。这样做可以让其他人链接到配置文件:

然后您可以要求其他人创建一个指向配置文件的链接:

$ rm .git/config
$ cd .git
$ ln -s ../config config

您可以将此代码编写成脚本或一行代码,以便让他们复制并粘贴。

2
但是如果他们在配置文件中还有自定义设置呢?这将清除这些设置。 - Jacko

1

您可以在存储库中创建一个shell脚本,通过git config设置这些值。这将允许学生们看到他们如何自己完成它,并为他们提供撤消本地设置的方法。

不幸的是,这不会自动完成。

例如:

#! /bin/sh
git config core.editor "ed"

绝对是个坏主意。用哪种语言编写脚本?最好使用所有学生都能理解的语言。而且你需要花时间去做这件事,这正是你之前评论中所缺乏的。 - Bite code
我指的是一个包含git命令以设置默认值的sh脚本。除非你的学生不使用命令行上的git? - idbrii
@e-satis 学生为什么需要理解脚本语言?不管你如何做,你都必须花时间学习这个,无论它是否相关。 - eis
不要只是让你的学生运行自定义脚本,而不告诉他们它的用途。在现实生活中,他们可能没有这个脚本,因此需要理解其内容。至少使用默认配置文件,他们可以集中精力理解git配置@home。 - Bite code
@e-satis:没错,您希望学生们理解事物的工作原理,以便将来能够应用自己的理解。但是如果git仓库被自动配置,他们如何知道如何在自己的计算机上复制该设置呢?(如果他们开始设置自己的仓库,则很可能不知道为什么他们的新仓库与他们的课堂仓库不同。) - idbrii
我可以把那个作为作业,把文件给他们。我不想给他们额外的东西去学习,比如一个与学习Git无关的脚本。 - Bite code

-4

全局设置可以通过以下方式进行设置:git config --global

也许你应该先让学生将配置文件(从自己的存储库)克隆到他们的主目录中。


抱歉,我无法分享任何GIT配置。 - Bite code

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接