GitHubからダウンロードしたフォルダをpushする方法
単刀直入に言うと、そもそもcloneしてしまえばこんなことは必要ないです。
コマンドプロンプトとか、VSCodeのターミナルから
- cd (フォルダが作られてほしいディレクトリ。絶対パスでいい)
- git clone -b (ブランチ名) https://github.com/~/~.git(←レポジトリのURL)
でいいです。これでもうpushできる。
最初のcdは、コマンドを打ったところの直下にフォルダが生成されるから、そのために移動するだけ。
C:\Users\Public\DocumentsにすればDocumentsにフォルダ(一個)が生成される。
こんな人に
開発の引継ぎをすることになった。
GitHubにあるコードをダウンロードした。
コードを変更、add, commitして、いざpushしようとしたらできない!という人へ。
環境
VSCode, Gitインストール済み
やる作業
プロジェクトを開く
まずは適切な位置にzipを解凍。
VSCodeを起動してOpen Folderでプロジェクトをを選んで開く。
ターミナルで初期設定
TerminalからNew Terminalで開いて、
- git init
- git remote add origin https://github.com/~/~.git(←レポジトリのURL)
- git add .
- git commit -m “(メッセージ)"
- git fetch origin (ブランチ名)
- git merge –allow-unrelated-histories origin/(ブランチ名)
ここでconflictが発生することがある(初期設定の違いのせい?)
丁寧にコードをいじって解消してもいいし、特にconflict部分を両方の要素を反映して直す必要がないなら
git checkout –theirs (conflictしたファイル名) で全面的に変えればいい。(theirsはoursでも可)
この場合は、以下の二つを再び実行- git add .
- git commit -m “(メッセージ)"
- git push origin (ブランチ名)
error: src refspec hello does not match anyって言われたら、- git push origin HEAD:(ブランチ名)
これで完了。
(追記)そういえばGitHubにログイン済みの前提だった…
もし、オマエハダレダ的なエラーが出てきたらこれを。
- git config –global user.name (ユーザー名)
- git config –global user.email (メルアド)
どこかのタイミングでログインページ or メッセージが出てくると思う。
(追記その2)–allow-unrelated-historiesについて
Zipでダウンロードすると、gitのワークツリーが引き継がれない。(※)
そのため、ローカルレポジトリとリモートレポジトリで履歴の乖離が起きてる。
だからこれでその違いを容認しなければならない。
※というかこれのせいであんなめんどくさいことをやる羽目になる。
コメント・質問は、FRC Japan Community にて