ローカルリポジトリをリモートリポジトリに登録する|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 pushgit pullのみを実行した際に、(上記の場合)origin mainを参照するようになります。

参考

このエントリーをはてなブックマークに追加
にほんブログ村 IT技術ブログへ

コメント

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