ローカルリポジトリをリモートリポジトリに登録する|Git
ローカルで作成したリポジトリをベアリポジトリに登録する方法です。
Windowsの場合、コマンドラインの操作は全てGit Bashで行います。
まず登録先のリモートリポジトリ(ベアリポジトリ)を作成します。
(ここでは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
$ git config http.receivepack true
ここで、git config http.receivepack true
が重要です。これをしないと、ローカルからプッシュできません。
以降はローカルリポジトリ内でコマンドを実行するため、Git Bashで対象のローカルリポジトリに移動します。
次のコマンドを実行し、リモートリポジトリを追加します。
$ git remote add <リモート名> <リモートURL>
# 例
$ git remote add origin https://github.com/user/new-repository.git
<リモートURL>はあらかじめ作成しておいたベアリポジトリ。
次のコマンドを実行し、カレントのブランチ名をmain
に変更します。
必須ではないですが、GitHubに上げる場合は推奨です。
$ git branch -M main
ここで、リポジトリにコミットが1つもない場合は次のようなエラーとなります。
$ git branch -M main
error: refname refs/heads/master not found
fatal: Branch rename failed
この場合は、次のコマンドを実行しても結果に何も表示されません。
git branch -a
ファイルを追加し、コミットした状態だと次のような結果になります。ですので、新規登録するためにはローカルのリポジトリを何かコミットした状態にする必要があります。
$ git branch -a
* master
次のコマンドを実行し、リモートに現在のリポジトリをプッシュします。
git push -u <リモート名> <ブランチ名>
# 例
git push -u origin main
-u
オプションは、git push
、git pull
のみを実行した際に、(上記の場合)origin main
を参照するようになります。
参考