如何为我的 git 存储库设置默认别名或其他配置?
How do I set default aliases or other configuration for my git repository?
我想为 git 存储库设置一些默认别名和其他配置,这样当新用户克隆它时,他们可以立即在该项目中使用这些别名。
也就是说,我想做:
git clone <remote-repo>
然后得到一个.git/config
,里面有一些预设的别名,比如:
[alias]
st = status
我想我可以在远程存储库中编辑 .git/config
,但这不起作用。
有什么办法可以做到这一点吗?
你不能直接这样做。一些配置,如工具,非常依赖于平台(有时依赖于用户),git 试图避免让每个使用你的存储库的人都遇到这个问题。
例如,您当然不希望允许某人为整个存储库设置默认的非本地用户名和电子邮件,或者最终得到一堆 Linux-only 合并工具Windows结帐。
也就是说,没有什么可以阻止您在项目的根目录中放入包含任何命令的脚本,并要求用户在首次克隆时 运行 它。当您已经手动克隆项目时,这是相对较小的开销。例如,要设置别名,请在脚本中执行如下操作:
git config --local alias.st status
这还有一个额外的好处,就是可以让您为不同的平台编写不同的脚本。
我不鼓励仅仅因为其他用户克隆了您设置的存储库就将您喜欢的 git 界面强加给其他用户。可能只是您使用了一个过度简化的示例,但直言不讳,用户是否将 st
设置为 status
.
的别名是您的业务 none
如果您认为使用您的存储库 确实 需要某些别名是有原因的,那么您可以在项目的根目录中包含一个脚本来设置它们。然后,您可以用任何您喜欢的方式记录它 - 自述文件、项目页面上的注释等。
但仅仅因为克隆行为导致设置别名——甚至是新克隆的本地别名——将是一个巨大的安全漏洞,所以不仅不能做到,而且我希望这永远不会发生改变。
我想为 git 存储库设置一些默认别名和其他配置,这样当新用户克隆它时,他们可以立即在该项目中使用这些别名。
也就是说,我想做:
git clone <remote-repo>
然后得到一个.git/config
,里面有一些预设的别名,比如:
[alias]
st = status
我想我可以在远程存储库中编辑 .git/config
,但这不起作用。
有什么办法可以做到这一点吗?
你不能直接这样做。一些配置,如工具,非常依赖于平台(有时依赖于用户),git 试图避免让每个使用你的存储库的人都遇到这个问题。
例如,您当然不希望允许某人为整个存储库设置默认的非本地用户名和电子邮件,或者最终得到一堆 Linux-only 合并工具Windows结帐。
也就是说,没有什么可以阻止您在项目的根目录中放入包含任何命令的脚本,并要求用户在首次克隆时 运行 它。当您已经手动克隆项目时,这是相对较小的开销。例如,要设置别名,请在脚本中执行如下操作:
git config --local alias.st status
这还有一个额外的好处,就是可以让您为不同的平台编写不同的脚本。
我不鼓励仅仅因为其他用户克隆了您设置的存储库就将您喜欢的 git 界面强加给其他用户。可能只是您使用了一个过度简化的示例,但直言不讳,用户是否将 st
设置为 status
.
如果您认为使用您的存储库 确实 需要某些别名是有原因的,那么您可以在项目的根目录中包含一个脚本来设置它们。然后,您可以用任何您喜欢的方式记录它 - 自述文件、项目页面上的注释等。
但仅仅因为克隆行为导致设置别名——甚至是新克隆的本地别名——将是一个巨大的安全漏洞,所以不仅不能做到,而且我希望这永远不会发生改变。