如何告诉 git 使用与远程引用相关的本地文件来跟踪我的点文件

如何告诉 git 使用与远程引用相关的本地文件来跟踪我的点文件

我使用 git 来维护我的 Linux“点文件”,其中包含来自我的 /home、我的 /etc 的文件,以及我在 /boot 中手动创建的一些条目(用于 systemd-boot)。我还使用保存在 $HOME/.cache/dotfiles 中的裸 git 存储库来跟踪这些文件,它跟踪我手动git add添加的文件。

如有必要,您可以通过以下链接查看此存储库:https://github.com/Frontear/dotfiles/tree/rewrite

在我不小心从电脑上删除了存储库文件(我删除了 $HOME/.cache/dotfiles)后,我目前遇到了问题。我通过重做了git init —bare ~/.cache/dotfiles,然后遇到了问题。通过附加我的远程仓库后git remote add,我无法拉动,因为它需要覆盖本地文件,这是我不想要的。我希望 git 使用当前文件,通过将其复制到本地来匹配远程的 HEAD,如果有任何更改(以某种方式)只需将它们显示为未暂存等,基本上撤消我对存储库的删除:p

我该怎么做呢?我尝试使用git fetch后跟git symbolic-ref HEAD refs/remotes/origin/rewrite(我遵循了另一个 stackexchange 问题的建议),但我遇到了这样的问题:这使得我的本地树没有分支,因为我坐在远程引用的头上。我想理想地将它们合并到本地分支,但我不知道如何实现它。已经阅读了各种问题,我被告知要重置 —hard (显然不是因为它会擦除+权限问题,因为 git 不知道某些文件的修饰符),clean -d -f (很确定这也会删除文件)。

我想要的是否可行,或者我需要做一些cp事情才能将远程 HEAD 复制到自定义本地分支 HEAD 位置?我希望不会,希望有一个本地 git 解决方案来解决我所处的困境。

相关内容