A 브랜치에서 B 브랜치까지의 차이를 재설정(동기화)

2835 단어 CircleCIGit
staging 브랜치를 게시 브랜치로 사용하고 있습니다.
검증이 끝나면 마스터 브랜치와 동일한 상태로 되돌아갑니다.

TL;DR


  • A 브랜치에서 B 브랜치까지의 차이를 재설정 (동기화)
  • git diff branchB..branchA > ファイル名 (B를 A에 동기화하는 파일 만들기)
  • git apply ファイル名 (B를 A에 동기화)

  • 결론


    
    git diff branchB..branchA > git.patch
    git apply git.patch
    



    staging 브랜치 => master 브랜치에 맞추는 경우
    
    git diff staging..master > git.patch
    git apply git.patch
    

    도입 예



    위에 rm -rf git.patchgit push.circleci/config.yml 에 추가하여 정기적으로 staging 청소(월요일 AM9시)

    sync-master-with-staging.sh
    #!/bin/bash -eu
    
    git diff staging..master > git.patch
    git apply git.patch
    rm -rf git.patch
    git push
    

    circleci/config.yml
    
    version: 2.1
    
    jobs:
       sync-master:
        executor: container
        steps:
          - checkout
          - attach_workspace:
              at: .
          - run: ./scripts/sync-staging-with-master.sh
    
    workflows:
       sync-master-every-monday:
        triggers:
          - schedule:
              cron: '0 0 * * 1' # 月曜日 AM9時
              filters:
                branches:
                  only:
                    - staging
        jobs:
          - sync-master
    

    좋은 웹페이지 즐겨찾기