2016-07-22 2 views
1

저는 컴퓨터에 자식 리포를 가지고 있는데이 레포 안에있는 디렉토리 중 하나는 문서의 html 빌드를 보유하고있는 git 작업 트리입니다. 그래서 나무는 내가 docs 디렉토리에있는 파일을 변경하기 때문에이하나의 명령으로 모든 자식의 브랜치를 변경하고 추가하십시오.

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

나는이 문서에서 일을 두 가지 (devgh-pages) 같은 것이, 업데이 트하고 스핑크스가 html 디렉토리에 HTML을 컴파일 간다 .

그러나이 과정을 마치면 주 브랜치와 gh-pages 브랜치에서 수동으로 git add . && git commit을 수행하고 모든 변경 사항을 git으로 푸시해야합니다.

이것은별로 골치 거리가 아니지만 모든 지점에 대해 하나의 명령을 실행할 수 있다면 편리 할 것입니다. 나는 git push이 모든 브랜치 (내가하는 일)를 푸시하기 위해 "기본값"으로 설정할 수 있음을 알고 있지만 (예 : 술 또는 설명과 같은) 추가 및 커밋 할 수있는 방법이 없음을 알고 있습니다.

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

또는 그와 비슷한 것. 그것을 할 수있는 방법이 있습니까?

건배!

+1

당신은 망할 놈의 지점을 이해하지 못하는 것 같습니다. 분기가 경로에 없습니다. [책보기] (https://git-scm.com/book/en/v2)를 보내주십시오. – poke

+0

@poke 하나의 디렉토리 내에서 분기를 변경할 수 있고 분기가 특정 디렉토리에 존재할 필요가 없다는 것을 알고 있습니다. 'gh-pages'를 제외하고 모든 컴퓨터의 최상위 디렉토리에있는 모든 4 가지 브랜치를 사용합니다. 실제로는'html'에서 실용적으로 체크 아웃했습니다. 이것이 제가 의미했던 것입니다. 어쨌든 책 팁을 주셔서 감사합니다. – TomCho

+0

[이 답변] (http://stackoverflow.com/a/16389663/4233593)을 참조하십시오. –

답변

1

한 번에 여러 분기를 커밋하거나 현재 체크 아웃되지 않은 분기를 병합하는 것은 불가능합니다.

하지만 명령어를 조금 줄일 수 있습니다. 모든 변경 사항을 추가하고 커밋하려면 한 줄을 밀어 넣으십시오.

git commit -am "commit message" && git push 
0

내 프로젝트에는 일반적으로 "개발"항목이있는 최상위 디렉토리가 있습니다.

#!/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 

두 가지 생각 : 그래서 아마 이런 스크립트 scripts/build_doc.sh (또는 무엇이든 당신이 선호하는 언어) 할 것 1) 당신이 커밋 후크에서이 작업을 수행 할 수, 2) 당신은 당신이 생성 한하겠습니까 저장소에있는 파일들, 전혀?

관련 문제