0
1

【GitHub】ローカルファイルを新規リモートリポジトリにアップロードする方法

Posted at

GitHubで管理する予定なくプログラムを書いていたが、気が変わってGitHubにアップロードし、バージョン管理したいことがあると思います。

そんなときのために、ローカルに置いてあるプログラム(ネット上に保存していないプログラム)をGitHubで管理する方法を紹介します。

前提

  • ローカルにプログラム(ソースコード)があり、リモートにはリポジトリがない

  • PCにGitがインストール済み

  • GitHubのSSH接続設定済み(まだの人は下記参照)

Windows 11での説明ですが、Macでも似たような手順だと思います。

方法

作業フォルダに移動

エクスプローラーでプログラムが置いてあるフォルダまで移動しましょう。

必要であれば、GitHubアップロード用のフォルダを別で作り、用途ごとにフォルダを分けプログラムを置いておくと管理しやすいです。

今回はCドライブ直下にGitHubフォルダを作り、その中にtestフォルダを作って作業フォルダとします。
testフォルダ内にはソースコードのダミーとしてsample1.txt、sample2.txtを置いています。

C:/ 
  ├ GitHub/ 
    ├ test/ 
      ├ sample1.txt
      └ sample2.txt

ローカルリポジトリの作成

ターミナルでtestフォルダに移動(例えばcd C:\GitHub\test)し、

git init

を実行してください。testフォルダ内に.gitフォルダが作られます。

C:/ 
  ├ GitHub/ 
    ├ test/ 
      ├ sample1.txt
      ├ sample2.txt
      └ .git

※ .gitフォルダは、隠しフォルダを表示する設定にしないと見えません。

リモートリポジトリの作成

次はGitHubのページで作業します。

新規リポジトリを作成します。

new-repository.png

  • リポジトリ名
  • 説明
  • 公開範囲(Public または Private)

などを入力して、 Create Repository をクリックします。
今回は Add a README file にチェックを入れて、README ファイルを作成しました。

リポジトリができたら、SSHのURLをコピーしておきます。(URL右の□マークを押すとコピーできます)

ssh-url.png

ローカルリポジトリとリモートリポジトリを紐づける

再び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)

のようなものが表示されていれば成功です。

リモートリポジトリにローカルファイルをアップロードする

リモートリポジトリ作成時に「README.md」や「.gitignore」を作成した方のみ
git pull origin main

でREADMEファイル等を一旦ローカルにコピーします。

最後に、ローカルのファイルをGitHubにアップロードするため、

git add -A
git commit -m "コメント"
git push origin main

を実行してください。

git add の後ろには、アップロードするファイルを記載します。フォルダ内のすべてのファイルなら-Aとします。ワイルドカード(*.txtなど)も使えます。

add、commit、pushの詳細な意味は下記記事が参考になります。

以上を実行後、github.comにアクセスすれば、ローカルのファイルがアップロードできているのが確認できます。

git-remote.png

こんなエラーが出たら

remote: Repository not found.

登録するリモートリポジトリのURLをsshのものにしてください。

登録済みのURLを消すためには

git remote rm origin

を実行します。

error: src refspec main does not match any

masterブランチとmainブランチが混在している可能性があります。

mainブランチをデフォルトに変更しましょう。

git branch

でブランチを確認します。mainだったらOK
もしmasterと表示されたら

git config --global init.defaultBranch main

でデフォルトをmainに変更。また、すでにmasterになっているローカルブランチは

git branch -m master main

で変更できます。

error: failed to push some refs to …

リモートで.gitignore等を作ったのに、pullせずにローカルからpushしようとしたから。

git pull origin main

をしてリモートをローカルにまずpullします。このとき、mergeで

fatal: refusing to merge unrelated histories

が出たら、

git merge --allow-unrelated-histories origin/main

を実行して強制的にマージする。(pull = fetch + merge)

その後、pushを行う。

git push origin main
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1