GitHubで管理する予定なくプログラムを書いていたんだけど、気が変わってGitHubにアップロードし、バージョン管理などを行いたい場合があると思います。
本記事では、ローカルに置いてあるプログラム(ネット上に保存していないプログラム)をGitHubで管理するまでの方法を初心者向けに解説します。
ただし、GitHubをある程度使ったことのある人を対象とします。
前提
- ローカルにプログラム(ソースコード)があり、リモートにはリポジトリがない
- PCにGitがインストール済み
- GitHubのSSH接続設定済み(まだの人は→https://qiita.com/aki4000/items/4c81bc2747bbd5e96d85)
Windows 11での説明ですが、Macでも似たような手順だと思います。
方法
作業フォルダに移動
エクスプローラーでプログラムが置いてあるフォルダまで移動しましょう。
必要であれば、GitHubアップロード用のフォルダを別で作り、その中に用途ごとにフォルダを分けプログラムを置いておくと管理しやすいです。
今回はCドライブ直下にGitHubフォルダを作り、その中にtestフォルダを作って作業フォルダとします。
testフォルダ内にはソースコードのダミーとしてsample1.txt、sample2.txtを置いています。
ローカルリポジトリの作成
ターミナルでtestフォルダに移動し(今回なら cd C:\GitHub\test)、
git init
を実行してください。testフォルダ内に.gitフォルダが作られます。
※ .gitフォルダは、隠しフォルダを表示する設定にしないと見えません。
リモートリポジトリの作成
次はGitHubのページで作業します。
https://github.com/に移動してください。
新規リポジトリを作成します。
- リポジトリ名
- 説明
- 公開範囲(Public or Private)
などを入力して、Create Repository をクリックします。
今回は Add a README file にチェックを入れて、README ファイルを作成しました。
リポジトリができたら、SSHのURLをコピーしておきます。(URL右の□マークを押すとコピーできます)
ローカルリポジトリとリモートリポジトリを紐づける
再びPCのターミナルにもどり、testフォルダに移動した状態で、
git remote add origin <あなたのリモートリポジトリURL>
を実行します。<あなたのリモートリポジトリURL>を、先ほど取得したSSHのURLで置き換えてください。
実行しても特にメッセージは表示されませんが、確認として
git remote -v
を実行して
origin git@github.com:(あなたのGitHubアカウント名)/test.git (fetch)
origin git@github.com:(あなたのGitHubアカウント名)/test.git (push)
のようなものが表示されていれば成功です。
リモートリポジトリにローカルファイルをアップロードする
git pull origin main
でREADMEファイル等を一旦ローカルにコピーします。
最後に、ローカルのファイルをGitHubにアップロードするため、
git add -A
git commit -m "コメント"
git push origin main
を実行してください。
git add の後ろには、アップロードするファイルを記載します。フォルダ内のすべてのファイルなら「-A」とします。ワイルドカード(*.txtなど)も使えます。
以上を実行後、github.comにアクセスすれば、ローカルのファイルがアップロードできているのが確認できます。
こんなエラーが出たときは?
remote: Repository not found.
git remote add時のエラー。
リモートリポジトリのURLとしては、SSHのURLを取得してください。https://から始まるURLだとうまくいかないことがあります。また、GitHubとPCをSSH接続するための設定を事前に済ませておく必要があります。
間違えたURLを登録してしまっている場合は
git remote rm origin
でリモートリポジトリのURLを削除した後、再度
git remote add origin <あなたのリモートリポジトリURL>
を実行してください。
error: src refspec main does not match any
git push時のエラー。
git branch
でブランチを確認してください。mainであればOKです。
masterになっていれば、
git config --global init.defaultBranch main
でデフォルトブランチ名をmainに変更しましょう。また、すでにmasterになっているローカルブランチは
git branch -m master main
でmainへ変更できます。
error: failed to push some refs to …
git push時のエラー。
リモートでREADMEファイルや.gitignoreを作成したのに、ローカルからpushしようとしています。ローカルとリモートのファイルが競合しているので
git pull origin main
により、まずリモートのファイルをローカルにpullしてください。このとき、
fatal: refusing to merge unrelated histories
というエラーが出たときは、
git merge --allow-unrelated-histories origin/main
により強制的にマージします。(pull = fetch + merge)
その後、pushしてください。
git push origin main
コメント