Git 두 개의 원격 리포지토리 동기화

2035 단어 GitHubGitGitLab
두 개의 Git 원격 원격 저장소를 가능한 한 번거롭게 동기화하는 방법을 소개합니다.

검증 배경


  • 프로덕션 환경에서도 원격 리포지토리를 만들어야했습니다.
  • 개발을위한 원격 저장소와 히스토리 레벨에서도 동기화해야했습니다.
  • 개발 및 프로덕션 환경은 물리적으로 다른 네트워크에 있었다.
  • 직접 연결되지 않음

  • 중계용의 PC(로컬 리포지터리)를 사용해 커멘드만으로 병합할 수 없는가. . .

  • 처리 이미지



    이 방법으로 동기화 할 수있었습니다.


    첫회만



    ①~②는 첫회만 실행하면 OK입니다.

    ① 프로덕션 리포지토리의 clone


    $ git clone [https://本番用のリポジトリ]
    $ cd [本番用のリポジトリフォルダ]
    

    ② 개발용 URL 링크 (원격 리포지토리 추가)


    $ git remote add devlab [https://開発用のリポジトリ]
    

    두 번째 이후



    ③개발용 최신 소스를 pull


    $ git pull devlab
    

    ④비교(선택)


    $ git diff master devlab/master
    

    ⑤ 개발용 병합


    $ git merge --allow-unrelated-histories devlab/master
    

    ※Already up to date.라면 변경 없음. 아무것도 하지마

    ⑥ 푸시 (상기에서 병합하고 있으므로 add&commit는 불필요)


    $ git push -u origin master
    

    이것으로 완료됩니다. 미안해.

    덤 (기타 자주 사용하는 명령, 비망록입니다)



    2회째 이후(브랜치 작성판)입니다.
    #(3) 開発用最新ソースをpull
    $ git pull devlab
    
    #(4) 開発用コードのブランチを作成
    $ git branch [devlabYmd] devlab/master
    
    #(5) 開発用マージ
    $ git merge --allow-unrelated-histories [devlabYmd]
    
    #(6) プッシュ
    $ git push -u origin master
    

    기타 자주 사용하는 명령
    # ブランチ一覧
    git branch
    
    # ブランチの比較
    git diff master [devlabYmd]
    
    # ブランチの削除
    git branch -d [devlabYmd]
    
    #コンフリクト時:開発用コードを優先(無条件上書きでよい場合のみ)
    git checkout --theirs [対象ファイル]
    
    #コンフリクト時:本番用コードを優先(無条件上書きでよい場合のみ)
    git checkout --ours [対象ファイル]
    
    # コンフリクト時エディタによる修正対応後
    git add .
    git commit -m "edit file commit“
    
    # push後の確認用
    git pull origin
    

    마지막으로



    Git은 할 수있는 일이 너무 많아서 기억하는 것이 아닙니다.
    RCS가 그리워요.

    좋은 웹페이지 즐겨찾기