我的计算机中有一个git repo,这个repo中的一个目录是一个git工作树,它包含了docs的html构建。所以树就像这样
. # <--- main branches here!
├── docs
│ └── _build
│ ├── doctrees
│ ├── html # <--- gh-pages branch here!
│ │ ├── _modules
│ │ ├── _sources
│ │ └── _static
│ └── latex
├── examples
└── mypackage
├── subpackages
└── subpackages
当我在文档中工作时,两个分支(dev
和gh-pages
)都会更新,因为我更改了docs
目录中的文件,然后sphinx将html编译为{ {1}}目录。
但是,当我完成该过程后,我必须在主分支和html
分支中手动执行git add . && git commit
,然后将所有更改推送到git。
这不是很麻烦,但如果我可以为所有分支机构发出一个命令,它会很方便。我知道gh-pages
可以&#34;默认&#34;推送所有分支(这就是我所做的),但我发现没有办法这样做来添加和提交(例如;只是为了清理或澄清)
git push
或类似的东西。有办法吗?
干杯!
答案 0 :(得分:1)
不可能一次提交多个分支,也不可能合并当前未签出的分支。
但是你可以稍微缩短命令。要添加所有更改并进行提交,请按一行
git commit -am "commit message" && git push
答案 1 :(得分:0)
我的项目通常有一个顶级目录,其中包含&#34; development&#34;东西。所以我可能会制作一个脚本scripts/build_doc.sh
(或你喜欢的任何语言):
#!/bin/bash
if [ "`git status -z`" != "" ] ; then echo Need clean directory ; exit 1 ; fi
whatever_command_to_rebuild_pages
git add -A dir_to_built_html_pages && \
git commit -m "autobuild" && \
git push
两个想法:1)您可以在commit-hook中执行此操作,2)您确定要在存储库中生成文件吗?