2016-07-22 48 views
1

我在我的计算机中有一个git repo,并且此repo内的一个目录是一个保存文档html构建的git worktree。因此,树是这样的使用一个命令添加并提交更改到所有git的分支

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

当我在文档工作,两个分支(devgh-pages)得到更新,因为我改变了docs目录中的文件,然后狮身人面像编译HTML到html目录。

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

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

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

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

干杯!

+1

你似乎不了解Git中的分支是什么。分支不存在于路径中。请[读一本书](https://git-scm.com/book/en/v2)。 – poke

+0

@poke我知道我可以在一个目录中更改分支,并且分支不必存在于特定目录中。我在我的所有电脑的顶级目录中使用了我所有的4个分支,除了'gh-pages'外,我为了实际目的而永久性地将其留在了'html'中,这就是我的意思。无论如何,感谢书的提示。 – TomCho

+0

你可能会发现[这个答案](http://stackoverflow.com/a/16389663/4233593)有帮助。 –

回答

1

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

但是你可以缩短一点命令。要添加所有更改和提交,然后推入一行

git commit -am "commit message" && git push 
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)你确定你想已经产生在你的仓库中的文件,根本?

相关问题