1

我的计算机中有一个 git 存储库,该存储库中的一个目录是一个 git 工作树,其中包含文档的 html 构建。所以树是这样的

. # <--- main branches here!
├── docs
│   └── _build
│       ├── doctrees
│       ├── html # <--- gh-pages branch here!
│       │   ├── _modules
│       │   ├── _sources
│       │   └── _static
│       └── latex
├── examples
└── mypackage
    ├── subpackages
    └── subpackages

当我在文档中工作时,两个分支 (devgh-pages) 都会更新,因为我更改了目录中的文件docs,然后 sphinx 将 html 编译到html目录中。

但是,当我完成该过程后,我必须git add . && git commit在主分支和gh-pages分支中手动执行,然后将所有更改推送到 git。

这不是很麻烦,但如果我可以为所有分支发出一个命令,那将很方便。我知道git push可以“默认”推送所有分支(这就是我所做的),但我发现没有办法这样做来添加和提交(例如;只是为了或澄清)

git add . --allbranches
git commit --allbranches -m "updated the docs"
git push

或类似的东西。有没有办法做到这一点?

干杯!

4

2 回答 2

1

不能一次提交多个分支,也不能合并当前未检出的分支。

但是您可以稍微缩短命令。添加所有更改并提交,然后推入一行

git commit -am "commit message" && git push
于 2016-07-22T12:00:30.730 回答
0

我的项目通常有一个包含“开发”内容的顶级目录。所以我可能会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)您可以在提交挂钩中执行此操作,2)您确定要在存储库中生成文件吗?

于 2016-07-26T12:32:23.450 回答