【问题标题】:How to add README.md on github but not have same README.md in home directory while using a bare git repository for managing dotfiles?使用裸 git 存储库管理点文件时,如何在 github 上添加 README.md 但在主目录中没有相同的 README.md?
【发布时间】:2020-06-24 18:38:24
【问题描述】:

我在裸存储库中使用 git 管理我的点文件。有关此方法的详细信息,请参阅article by Harfang Perch

效果很好,但我想将 README.md 添加到 repository on github 的根目录中。

如何将 README.md 添加到 github 存储库根目录但该文件显示在我的主目录中?

如果我将 README.md 推送到 github,然后删除主目录中的 README.md,这将导致

deleted:    README.md

来自git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME status 的消息,我希望避免。

据我所知,github 仅在存储库根目录(以及子目录,但与此问题无关)中呈现 README 和 README.md 文件。

我还没有看到其他带有 README.md 文件的 github dotfile 裸存储库,但我只检查了 5 个。

Github wiki 页面不能解决这个问题,除非有一些魔法可以使用隐藏的 .dotfile 将它们显示在存储库的根目录中。也许我正在抓住稻草,但是,有没有办法在 github 上的存储库根目录中链接和显示要点?

我目前不使用 gitlab,但如果他们有 github 不支持的支持,则可以迁移到 gitlab 或类似的 git 托管服务。

【问题讨论】:

  • 我建议不要在这里使用裸存储库。将存储库保存在单个.dotfiles 目录中,并根据需要创建$HOME/.bashrc -> $HOME/.dotfiles/.bashrc 之类的符号链接。您可以编写一个脚本来创建所有必要的符号链接并将其存储在存储库中。
  • (许多(尽管不是全部)程序也可能在标准位置(例如 ~/.config)查找配置文件,这意味着您可以简单地将您的 .dotfiles 克隆为 .config。这样的程序将可能遵循一个标准环境变量,该变量指定哪个目录包含配置,这意味着您在~ 中直接需要的唯一文件是设置该环境变量的 shell 配置文件。)
  • @chepner 我选择了裸存储库点文件管理方法来避免使用符号链接。

标签: git github dotfiles readme git-repo


【解决方案1】:

您可以将您的 README 文件放在 .github 文件夹中,它将在 github 上自动检测到并显示在您的 repo 主视图中

【讨论】:

  • 那行得通 :-) 非常感谢您的回答! FWIW 您所描述的内容已记录在案here
【解决方案2】:

GitHub 上默认显示的Readme.mdmaster 分支中的那个。

您可以创建一个没有自述文件的home 分支,并将该分支用作工作分支。

您可能希望定期合并到 master,您可以在提交或推送时一次性添加一个或两个方便的别名。


您也可以尝试巧妙地使用子树。

【讨论】:

    【解决方案3】:

    我现在能做的最好的就是链接到关于部分的要点。

    关于部分显示在 github 存储库页面的右侧。

    【讨论】:

    • 这是我发现的一个示例,它使用 about 部分链接到 .dotfiles 文件夹中的自述文件,使其保持独立。 github.com/anandpiyer/.dotfiles
    • 这比我在“关于”部分中的链接更可取,而不是单独的要点。考虑将其添加为答案。很好的例子!
    • 添加为answer
    【解决方案4】:

    虽然不理想,但一种简单的解决方案是将您的 README 和任何其他有关您的配置的元文件放入跟踪的 .dotfiles 目录中。然后,您可以链接到 GitHub 上您的 repo 的 about 部分中的 README 文件。

    此设置的一个示例:https://github.com/anandpiyer/.dotfiles

    亲自尝试后,我意识到我的 repo 本身存储在 .dotfiles 目录中,因此 README 与内部 Git 文件混合在一起。但是,将其放在 ~/.dotfiles/README.md 中并添加/推送按预期工作。如果您不想混入其中,可以尝试使用不同的目录名称,例如 .about

    【讨论】:

    • README.md 位于您的 repo 的 .dotfiles 文件夹中。这是README.md 是每个分支的共同点吗?因为在我的配置中实际上我需要管理包含不同主题的不同分支,所以我想将屏幕截图添加到每个分支中显示的README。有可能吗?
    • 我认为您需要将最新的 README 拉入每个分支才能像您所描述的那样共享它,也许脚本可以帮助自动执行此操作。
    • 哦,我明白了。谢谢。我会试试的。
    【解决方案5】:

    提交正确的 readme 文件并将其推送到您的存储库,

    在您的 .gitignore 文件中添加 readme 文件,现在您可以更改计算机中的自述文件并毫无问题地提交您的更改。

    如果 git 不忽略自述文件,请尝试:

    提交所有更改并运行

    git rm -r --cached . 
    

    用于重置 git 上的后续文件

    【讨论】:

    • 将跟踪的文件添加到 .gitignore 没有意义 - .gitignore 仅忽略 未跟踪的 文件。
    • git rm -r --cached . 这个建议更糟糕,它会从 repo 中删除所有内容,因此 OP 会丢失他的所有文件。
    猜你喜欢
    • 2019-01-28
    • 2017-10-26
    • 2012-07-15
    • 1970-01-01
    • 2020-09-24
    • 1970-01-01
    • 2012-10-12
    相关资源
    最近更新 更多