1

私のコンピューターには git リポジトリがあり、このリポジトリ内のディレクトリの 1 つは、ドキュメントの HTML ビルドを保持する git ワークツリーです。したがって、ツリーは次のようになります

. # <--- 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 にプッシュする必要があります。

これはそれほど面倒ではありませんが、すべてのブランチに対して 1 つのコマンドを発行できれば便利です。すべてのブランチをプッシュするように「デフォルト」にできることはわかっていgit pushますが(これは私が行っていることです)、これを追加してコミットする方法が見つかりませんでした(たとえば、目的や説明のために)

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

またはそのようなもの。それを行う方法はありますか?

乾杯!

4

2 に答える 2

1

一度に複数のブランチにコミットしたり、現在チェックアウトされていないブランチをマージしたりすることはできません。

ただし、コマンドを少し短縮することはできます。すべての変更を追加してコミットするには、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 

2 つの考え: 1) コミットフックでこれを行うことができます。2) リポジトリにファイルを生成してもよろしいですか?

于 2016-07-26T12:32:23.450 に答える