【问题标题】:Import aliases when cloning repository [duplicate]克隆存储库时导入别名[重复]
【发布时间】:2018-12-18 16:27:20
【问题描述】:

我有一个带有 repo/.git/config 文件的存储库,其中定义了别名。

有没有一种方便的方法可以在git clone repo repo-clone 命令生成的repo-clone/.git/config 文件中导入这些别名?

这两个存储库在不同的设备上,所以我不能使用this solution 女巫使用全局配置文件 ($HOME/.gitconfig)。

编辑

我找到了一个新的答案,与克隆时导入别名的这种特殊情况更相关,请参阅下面的 cmets。

【问题讨论】:

  • 我认为此类别名的正确位置应该是存储库本身的跟踪文件中,如果需要,由新存储库的创建者将它们复制到.git/config.git/config 包含与存储库关联的配置,而不是它的部分
  • ...在项目的根目录中放入包含您想要的任何命令的脚本,并要求用户在第一次克隆时运行它。
  • @chepner 你指出了一件非常有趣的事情!您似乎无法表明您为此存储库定义的某些别名实际上是它的 part。由于别名包含在配置文件中,它们必须遵守相同的约束。

标签: git git-clone git-alias


【解决方案1】:

您不能在目标 repo 的配置中设置别名仅仅作为克隆的自动结果。这样的功能很容易被滥用,因为这意味着我可以通过让你克隆我的 repo 并让它设置一个你不期望的别名来欺骗你运行我选择的任意代码。可能会使用。

“但是,Mark,别名不能覆盖内置的 git 命令。”

好的,但如果我试图传播某种恶意软件,我可能只需要在某些时候愚弄一些人。很多人都有一个“co”别名,或者当他们的意思是“checkout”时,他们很难输入“chekcout”;所以我可以给这样的东西起别名。您可能不想盲目地从您可能执行的任何旧的clone 操作中接受这些配置。

您可以创建一个脚本来设置别名配置并将其包含在您的存储库中。然后克隆 repo 的人可以运行脚本(如果他们信任您,或者已经检查过脚本并且对它的安全感到满意)。

对于受信任的存储库,您甚至可以设置一个挂钩以在结帐时运行或其他东西,以便可以在存储库内容更改时更新别名配置。同样,是否实际配置此钩子取决于本地用户,这是安全所必需的。

【讨论】:

  • 我的问题在于受信任的环境(不能从外部克隆),但我了解安全问题。对于普通用户来说,配置钩子可能有点棘手,所以我将在克隆后进行额外的“脚本设置步骤”。考虑到安全限制,提供更高的附加链接看起来是最好的解决方案。我只需要提供用户别名来管理我想象的分支逻辑,我希望有一个“准备好使用”的东西。
  • 找到了 git clone 命令的--config(或-c)选项(例如:git clone --config alias.last='log -1 HEAD')。这不是完全自动的,但我想如果你有几个别名要设置,它可以完成这项工作。
猜你喜欢
  • 1970-01-01
  • 2023-04-01
  • 2010-10-21
  • 2020-09-23
  • 2013-12-16
  • 2016-10-08
  • 2021-12-31
  • 1970-01-01
  • 2018-08-08
相关资源
最近更新 更多