我目前正在开发一个使用Gradle的项目。项目存储库位于GitHub上,有两个主要分支:master
用于实际源文件,gh-pages
用于GitHub页面。它们完全相互独立,并且有着无关的历史。
现在我想在GitHub页面站点上托管文档文件(即JavaDoc文件),因此我需要将生成的文档文件放在gh-pages
分支上。但是,在master
分支上忽略了构建后文档所在的目录,因为我不想将其推送到主存储库分支 - 仅限于GitHib页面分支。
因此,一旦我结帐到gh-pages
,生成的文件就会消失(分别由文档分支中的文件覆盖)。
有没有办法将{merge,checkout,...)忽略文档文件从master
分支移动到GitHub页面分支,而无需将它们移出存储库在切换分支之前?
答案 0 :(得分:1)
听起来git stash
可以做你想做的事情:
第1步:您生成文档
第2步: git status
表示您已在docs/...
第3步:您启动git add docs/
后跟git stash
,git将记录所有更改,但将工作环境恢复到上次提交
第4步:您使用git checkout gh-pages
第5步:您使用git stash pop
第6步:您可以提交这些更改。
简而言之:git stash
清除所有内容,以便您可以切换分支,但它会记住更改,您可以"合并"他们又在另一个分支之上。你也可以创建多个stashes但很快就会搞砸了,所以一定要使用git stash pop
,它不仅会应用最新的更改,还会从stashing-index中删除它们。