使用一个命令添加并提交对所有git的分支的更改

时间:2016-07-22 11:48:20

标签: git branch git-branch git-worktree

我的计算机中有一个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

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

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

这不是很麻烦,但如果我可以为所有分支机构发出一个命令,它会很方便。我知道gh-pages可以&#34;默认&#34;推送所有分支(这就是我所做的),但我发现没有办法这样做来添加和提交(例如;只是为了清理或澄清)

git push

或类似的东西。有办法吗?

干杯!

2 个答案:

答案 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)您确定要在存储库中生成文件吗?