我有一个 Jekyll 站点,我想将其托管在 GitHub 上。由于 GitHub 不支持 jekyll 插件,我想让我的 mater 分支只包含 _site 中的文件,并创建一个包含其他所有内容的开发分支。
这可能吗?如果是这样我该怎么做?我不是 git 的最佳人选。
谢谢
最佳答案
似乎您想要的只是拥有一个开发分支和一个主分支,其中将包含某个文件夹内容的镜像,比如 _site。
让我们开始吧!
好的。我假设您有一个包含开发分支的存储库,其中包含您要“导出”的所有员工和 _site
文件夹。
让我们创建一个提交,其中仅包含 _site
文件夹的内容。
echo '填写有意义的描述' | git commit-tree development^{tree}:_site
创建一个提交并输出它的 id。它是 47651a42...
。它在您的机器上会不同。
请注意,development^{tree}:_site
是树的修订版(sha1 总和),对应于上次提交的根目录中的 _site
文件夹开发
分支。
现在让 master 分支指向这个提交:
git update-ref refs/heads/master 47651a42
现在 git log master
在我的机器上显示以下内容
commit 47651a42e6800f399c4352d0416f4ca96895f099
Author: Aleksandr Priymak <aleksandr.priymak@gmail.com>
Date: Fri Jul 27 05:27:43 2012 +0400
first commit
如果您检查此分支,您将获得 _site 文件夹的内容!很简单。只剩下一件事了。 47651a42
commit 没有任何父项,因此您需要将 -f
添加到您的 git push
命令以推送更新的 master。另一种方法是实际指定父级。为此,请使用此命令
echo '填写有意义的描述' | git commit-tree dev^{tree}:_site -p $(cat .git/refs/heads/master)
你可以使用下面的一行代码来做到这一点
git update-ref refs/heads/master $(echo 'Add commit message here!' | git commit-tree dev^{tree}:_site -p $(cat .git/refs/heads/master))
关于git - 是否可以在我的本地计算机上拥有一个包含两个包含不同目录的分支的 GitHub 存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11678592/