我有一个私人的git仓库,它类似于一个dotfiles仓库,用于跟踪我的服务器和机器上的shell历史记录。我这样做是为了拥有永久的外壳咒语记录,当我遇到隐约记得知道如何做但不记得特定命令的情况时,可以参考。
在过去的几年中,我一直在将shell历史记录文件手动复制到我的这个存储库中,但是最近我意识到应该有一种更简单的方法来执行此操作。我通常会记得在退役之前从环境中保存历史记录,但是这个过程的重复性已经变得有点刺耳了。
主要限制是symlinks are not followed by git。如果签入符号链接,Git只会记录符号链接的目标位置。从概念上讲,我想要做的是设置它,以便它可以跟随链接:这样,我可以简单地在多台计算机上设置我的shell历史记录,检查到我的shell历史记录文件的“链接”,然后那么我希望能够从那里开始简单地运行git diff
来查看并提交所有新更改,而不必再次手动输入文件关联。
如果没有简便的方法,我想也许可以使用git挂钩,但是我真的不知道在尝试提交之前可以运行的任何客户端挂钩...
我还要提到一种有趣的行为,据我所知,在Windows上使用Git时,实际上确实将符号链接视为副本。因此,这应该在Windows上开箱即用。问题是如何在每个存储库的基础上欺骗Linux / macOS来做到这一点。
只需将符号链接做成另一种方式。将您的~/.bash_history
链接到您的git文件。
ln -s repo/bash_history ~/.bash_history
我有一个脚本可以将我所有的点文件链接到系统https://github.com/utix/dotfiles/blob/master/%2Bbin/doconf