Skip to content

Instantly share code, notes, and snippets.

@ktx2207
Last active August 29, 2015 14:05
Show Gist options
  • Save ktx2207/e861325fc198509b69a8 to your computer and use it in GitHub Desktop.
Save ktx2207/e861325fc198509b69a8 to your computer and use it in GitHub Desktop.
NAS上の共有リポジトリにpushされたらBitBucketへpushする

NAS上の共有リポジトリにpushされたらBitBucketへpushする

NAS上の共有リポジトリにpushされた後、BitBucketへpushするための設定

事前準備

BitBucketに空のリポジトリを作成する。(リポジトリ名はsampleとする。)

/c/git/non-bare/上にローカルのsample.gitをcloneする。

$ mkdir -p /c/git/non-bare
$ cd /c/git/non-bare
$ git clone /c/git/bare/sample.git

BitBucket上で作成したリポジトリを登録しておく

 $ git remote add bitbucket git@bitbucket.org:[ユーザ名]/sample.git

BitBucketヘッダ右上の[アカウントの管理]-[SSHキー]を選択し、公開鍵を設定する。

ローカルリポジトリをbitbucketに登録する。

 $ git push -u bitbucket --all 
$ git push -u bitbucket --tags 

BitBucketにpushされたことを確認する。

post-receiveを記述

#!/bin/sh

REPOSITORY_NAME=sample # リポジトリ名
USER_NAME=ktx2207      # ユーザ名
LOCAL_NON_BARE_REPOSITORY_ROOT=/c/git/non-bare       # ノンベアリポジトリの配置場所
LOCAL_BARE_REPOSITORY=/c/git/bare/${REPOSITORY_NAME} # ベアリポジトリの配置場所

rm -rf ${LOCAL_NON_BARE_REPOSITORY_ROOT}/${REPOSITORY_NAME} # 既に存在するノンベアリポジトリを削除
mkdir -p ${LOCAL_NON_BARE_REPOSITORY_ROOT}                  # ノンベアリポジトリの配置場所を作成
cd ${LOCAL_NON_BARE_REPOSITORY_ROOT}                        # ノンベアリポジトリの配置場所に移動
git clone ${LOCAL_BARE_REPOSITORY}                          # ローカルのベアリポジトリからclone
cd ${LOCAL_NON_BARE_REPOSITORY_ROOT}/${REPOSITORY_NAME}     # cloneしたノンベアリポジトリに移動
git --git-dir=.git remote add bitbucket git@bitbucket.org:${USER_NAME}/${REPOSITORY_NAME}.git # bitbucketをリモートとして追加
git --git-dir=.git push -u bitbucket --all  # bitbucketにpush
git --git-dir=.git push -u bitbucket --tags 
 

post-receiveを配置

$ chmod 775 post-receive
$ mv post-receive /c/git/bare/sample.git/hooks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment