将被忽略的目录移动到其他分支

时间:2017-04-27 21:18:20

标签: git github gradle branch

我目前正在开发一个使用Gradle的项目。项目存储库位于GitHub上,有两个主要分支:master用于实际源文件,gh-pages用于GitHub页面。它们完全相互独立,并且有着无关的历史。

现在我想在GitHub页面站点上托管文档文件(即JavaDoc文件),因此我需要将生成的文档文件放在gh-pages分支上。但是,在master分支上忽略了构建后文档所在的目录,因为我不想将其推送到主存储库分支 - 仅限于GitHib页面分支。

因此,一旦我结帐到gh-pages,生成的文件就会消失(分别由文档分支中的文件覆盖)。

有没有办法将{merge,checkout,...)忽略文档文件从master分支移动到GitHub页面分支,而无需将它们移出存储库在切换分支之前?

1 个答案:

答案 0 :(得分:1)

听起来git stash可以做你想做的事情:

第1步:您生成文档

第2步: git status表示您已在docs/...

中进行了更改

第3步:您启动git add docs/后跟git stash,git将记录所有更改,但将工作环境恢复到上次提交

第4步:您使用git checkout gh-pages

切换到gh页面

第5步:您使用git stash pop

应用对文档所做的更改

第6步:您可以提交这些更改。

简而言之:git stash清除所有内容,以便您可以切换分支,但它会记住更改,您可以"合并"他们又在另一个分支之上。你也可以创建多个stashes但很快就会搞砸了,所以一定要使用git stash pop,它不仅会应用最新的更改,还会从stashing-index中删除它们。