はじめに
本記事では、ローカルで管理しているGitプロジェクトを、空のリモートリポジトリに初回pushする手順を解説します。
筆者の背景として、PCのフォーマットを予定しており、ローカルのプロジェクトをGitHubにバックアップしたいという意図がありました。そのため、ローカルで管理していたリポジトリをGitHubの空リポジトリへpushし、リモート上に履歴を残すという方法を選びました。
リモートに空のリポジトリを作成する
まず、GitHubのトップページから右上の「+」アイコンをクリックし、「New repository」を選択します。
遷移先の画面で「Repository name」を入力し、その他の設定(README / .gitignore / LICENSEの追加)はすべてチェックを外したまま「Create repository」を押下してください。
以下の項目にはチェックを入れないでください:
- ✅ Add a README file
- ✅ Add .gitignore
- ✅ Choose a license
いずれか1つでも追加すると、GitHub側に初回コミットが発生してしまい、ローカルリポジトリとの履歴が食い違ってfatal: refusing to merge unrelated histories
エラーの原因になります。
完全に空のリポジトリを作成することが今回の目的です。
ローカルリポジトリからリモートへpushする
次に、ローカルのGitプロジェクトのルートディレクトリ(.git
フォルダがある場所)に移動し、以下のコマンドを順に実行します。
# ① リモートリポジトリを origin という名前で登録
git remote add origin https://github.com/your-name/sample-repository.git
# ② ブランチ名を main に変更(必要に応じて)
git branch -M main
# ③ 初回push。ローカルのmainをoriginのmainとして追跡設定
git push -u origin main
補足:Gitコマンドについて
git remote add origin ...
について
このコマンドでは、GitHub上のリポジトリURL(https://github.com/...
)を**origin
**という名称で登録しています。
origin
は慣習的な名前ですが、任意の名前にすることも可能です。
例:git remote add backup https://...
git push -u origin main
について
この -u
(--set-upstream
)オプションは、
「ローカルの
main
ブランチと、リモートのorigin/main
を紐付ける(追跡設定する)」
という意味です。
この設定を行うことで、以降のpushやpullは省略して以下のように実行できます:
git push # 2回目以降
git pull # 追跡先からのpull
おわりに
本記事では、ローカルで作成済みのGitプロジェクトを、履歴の衝突なくGitHubに初回pushする方法を紹介しました。
ポイントは、GitHubで空のリポジトリを作成する際に、README / LICENSE / .gitignore を追加しないことです。これにより、ローカルの履歴とリモートの履歴が衝突せず、スムーズにpushできます。
以上です。Gitを使った環境移行やバックアップの参考になれば幸いです。