リポジトリのインポート | Git

リポジトリを他のサーバなどにインポートするための手順です。
Windowsの場合、コマンドラインの操作はサーバ側・クライアント側共に全てGit Bashで行います。

既存のリポジトリからベアリポジトリを作成する

まず、既存のリポジトリからベアリポジトリを作成(クローン)します。

ローカルにあるリポジトリからベアリポジトリを作成する

この場合、リモートにプッシュしていないコミットもクローンに含まれます。

git clone --bare <リポジトリ名> <新しいリポジトリ名>.git

# 例
git clone --bare localrepo localrepo.git

<新しいリポジトリ名>.gitを省略した場合は<リポジトリ名>.gitとなります。

外部リポジトリからベアリポジトリを作成する

  • Local プロトコルから作成
    git clone --bare //repos/<リポジトリ名> <新しいリポジトリ名>.git
    
    # 例
    git clone --bare //repos/repo.git repo.git
    
  • HTTP プロトコルから作成
    git clone --bare <リモートURL> <新しいリポジトリ名>.git
    
    # 例
    git clone --bare http://git-server/repo.git repo.git
    

<新しいリポジトリ名>.gitを省略した場合は<リポジトリ名>がそのまま使われます。

作成したベアリポジトリをインポートする

直接サーバのフォルダに配置する場合

  1. クローンしたベアリポジトリをGitサーバにコピーする
  2. コピーしたフォルダ内で次のコマンドを実行する
    git config http.receivepack true
    

ローカルからクローンしたリポジトリをプッシュする場合

  1. Git サーバに新しいリポジトリ(ベアリポジトリ)を作成する
    (ここではnew-repository.gitとする)
    $ mkdir new-repository.git
    $ cd new-repository.git
    $ git init --bare --shared
    # git config http.receivepack true
    
    Local プロトコルの場合はクライアントから次のようなコマンドで作成できる
    $ mkdir //repos/new-repository.git
    $ cd //repos/new-repository.git
    $ git init --bare --shared
    
  2. クローンしたベアリポジトリのフォルダから、次のコマンドを実行する
    • Local プロトコル
      git push --mirror //repos/new-repository.git
      
    • HTTP プロトコル
      git push --mirror <リモートURL>
      
      # 例
      git push --mirror http://git-server:8022/new-repository.git
      
  3. 最後にローカルに作成していたベアリポジトリを削除する
    rm -rf <新しいリポジトリ名>.git
    
このエントリーをはてなブックマークに追加
にほんブログ村 IT技術ブログへ

関連コンテンツ

スポンサードリンク

コメント

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です