gpt4 book ai didi

git - 如何将特定目录提交到与 git 上的工作分支不同的目录?

转载 作者:太空狗 更新时间:2023-10-29 13:44:13 25 4
gpt4 key购买 nike

我有一个简单的静态网站,基于HTML 5 boilerplate整个事情都在 github 存储库中。项目结构是这样的

build
css
img
js
publish # this directory isn't in source control!

...

index.html & other files

基本上我所做的是运行一个构建脚本(from HTML 5 boilerplate)将所有 HTML/CSS/JS 编译到 publish 目录中,该目录不在 git 存储库中.

现在我想做的是利用 GitHub pages并能够将 publish 目录输出用作 GitHub 页面。

GitHub pages 的工作方式是创建一个干净的独立分支,名为 gh-pages,它将包含最终内容。 我想做的是能够按需将当前 publish 目录提交到 gh-pages 分支,但我也想要将其保存在主 .gitignore 文件中,这样它就不会被推送到源存储库中。

我想这样做是为了预览项目的当前状态。

简而言之: 我需要将一个目录提交到一个单独的分支,因此它的根目录将与该目录的内容相同。 publish/css 将成为 gh-pages 分支上的 css

最佳答案

由于 .gitignore 也有版本控制,所以不要将 publish/ 目录放在 gh-pages 分支的 中.gitignore 文件。然后,你可以做这样的事情:

ORIG_HEAD="$(git name-rev --name-only HEAD)" git checkout gh-pages && mv publish/* . && git commit -am "automatic update" && git checkout "$ORIG_HEAD"

这确实很棘手,因为您想在根目录而不是子目录中执行操作。另一种选择是简单地在不同目录中维护同一存储库的单独克隆,该目录始终位于 gh-pages 分支上。您可以让您的脚本只将文件写入那里,而不是写入 publish/,然后只在该克隆中提交。

关于git - 如何将特定目录提交到与 git 上的工作分支不同的目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7212290/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com