Githubで新規レポジトリを作成した時にすでにファイルが存在する状態でローカルのファイルをコミットさせるときの手順

2021/05/02に公開

Githubで新規のレポジトリを作成するときにREADMEや.gitignore、そしてLICENSEを作成するかを選択することができます。

もし、このレポジトリをクローンしてから開発をすすめるならそれでいいと思いますが、すでにローカルにあるファイルをコミットさせたいときにはリモートにすでにファイルが存在する状態になるのでコミットでエラーを吐きます。

ただ、3つのファイルをローカルで新規作成するのも面倒ですし、あとからGithub上で作成することもできますができれば新規作成時に作れるものは作りたいわけです。とくにLICENSEに関しては後で入れようと思って忘れますし・・・

というわけで今回は新規レポジトリ作成時にファイルを作成したときにローカルのファイルをコミットさせるための手順を紹介しようと思います。

なお、今回はGitコマンドをある程度知っている(commit, pushなど)方向けに書いてます。

新規レポジトリ作成

新規作成のときに以下のチェックボックスにチェックを入れます。

.gitignoreとlicenseはお好みのものを選んでおきます。

create repository

ローカルのレポジトリ設定

続いてローカルのレポジトリを設定します。

任意のプロジェクトディレクトリにgit initをしたあとに先ほど作成したレポジトリ上のファイルをマージさせるためにブランチを作成します。(ここではブランチ名をdevelopとします)

$ git init
$ git branch -m develop

続いてディレクトリ内のファイルを一旦コミットします。

$ git add .
$ git commit -m "first commit"
$ git remote add origin 【リモートブランチのURL】
$ git fetch

リモートブランチの変更をマージする

これで一通りの準備ができたので、リモートのmainブランチを変更をdevelopブランチにマージします。

$ git branch #現在のブランチがdevelopであることを確認
$ git merge origin/main --allow-unrelated-histories #エディタ画面が表示されたら何も変更を入れずに保存してエディタを閉じる(おそらくviだとおもうので、:wqと入力すればいいはず)

これでマージされた変更もコミットされたので、ローカルのコミットをリモートにpushします。

$ git push origin develop

最後にPR作ってマージすればメインで運用しているブランチに変更が適用されます。

Discussion