Git map目录分支

时间:2014-04-16 01:38:10

标签: git

我有资源库blog

blog
├─ master
│  └─ _site
│     └─ more folders
│
└─ gh-pages

我想将master:_site/映射到分支gh-pages。我如何使用git

执行此操作

5 个答案:

答案 0 :(得分:2)

您可以将gh-pages分支作为子模块添加到主存储库。像这样:

cd blog
git submodule add -b gh-pages <my-repository-url> master/_site

这假设目录master/_site尚不存在。您需要彻底阅读并理解submodules section of the Git book。特别是,当您在_site目录中提交更改时,该过程通常为:

cd master/_site
...edit some file...
git add some_file
git commit -m 'edit all the things'
cd ..
git commit -m 'edited some files' _site

答案 1 :(得分:2)

我认为这完全是偏执狂:

#!/bin/sh
if ghpages=`git rev-parse -q --verify gh-pages`; then
        # there's already a branch, don't double-commit a tree
        committed=`git rev-parse -q --verify gh-pages^{tree}`
        current=`git rev-parse -q --verify master:_site`
        test x$current = x$committed && exit
fi
if commit=`git commit-tree ${ghpages:+-p $ghpages} -m 'updating gh-pages' master:_site`; then do
        git update-ref refs/heads/gh-pages $commit
fi

要根据请求硬连线,请将其放在.git/hooks/post-commitchmod +x中。

答案 2 :(得分:1)

从各种令人生畏的方式来执行此操作,我会秘密(?)为我做这个(从分支主机中本地副本的根目录开始):

git checkout gh-pages
git checkout master -- _site/
mv _site/* .
rm -rf _site

然后提交并推送更改:

git add .
git commit -m "Copied site from master"
git push origin gh-pages

答案 3 :(得分:0)

执行此操作的一种方法是在_site中初始化git存储库。

cd blog

# populates _site
jekyll build
cd _site

# create git repository, add files and push
git init
git checkout -b gh-pages
git commit -am "message"
git remote add git@github.com:<user>/<repo>.git
git push origin gh-pages

答案 4 :(得分:0)

转到要映射到远程主控的当前目录,然后在下面键入。

  1. git clone yourCloneURL
  2. 将克隆目录中的“.git”文件夹复制到当前目录

    cp yourClonedFolder / .git。

  3. 删除克隆文件夹

    rm -rf yourClonedFolder

  4. git add。

  5. git commit -m“Initial Commit”
  6. git push origin master