コマンドまとめ
# リモートリポジトリを追加 git remote add origin https://github.com/oki2a24/docker_nginx_php_fpm_sock.git # リモートリポジトリの確認 git remote -v # ローカルの master ブランチ名を変更 git branch -m master develop # ローカルリポジトリの内容を、リモートリポジトリへアップロード git push -u origin --all git push -u origin --tags # リモートリポジトリの内容を、ローカルリポジトリへダウンロード git fetch # マージしてプッシュ git checkout master git merge --no-ff --allow-unrelated-histories develop git push origin master
実践
$ # リモートリポジトリを追加 $ $ git remote add origin https://github.com/oki2a24/docker_nginx_php_fpm_sock.git $ $ # リモートリポジトリの確認 $ git remote -v origin https://github.com/oki2a24/docker_nginx_php_fpm_sock.git (fetch) origin https://github.com/oki2a24/docker_nginx_php_fpm_sock.git (push) $ $ # ローカルの master ブランチ名を変更 $ git branch -m master develop $ $ # ローカルリポジトリの内容を、リモートリポジトリへアップロード $ git push -u origin --all Enumerating objects: 38, done. Counting objects: 100% (38/38), done. Delta compression using up to 4 threads Compressing objects: 100% (24/24), done. Writing objects: 100% (38/38), 3.87 KiB | 791.00 KiB/s, done. Total 38 (delta 4), reused 0 (delta 0) remote: Resolving deltas: 100% (4/4), done. remote: remote: Create a pull request for 'develop' on GitHub by visiting: remote: https://github.com/oki2a24/docker_nginx_php_fpm_sock/pull/new/develop remote: To https://github.com/oki2a24/docker_nginx_php_fpm_sock.git * [new branch] develop -> develop Branch 'develop' set up to track remote branch 'develop' from 'origin'. $ git push -u origin --tags Everything up-to-date $ $ # リモートリポジトリの内容を、ローカルリポジトリへダウンロード $ git fetch remote: Enumerating objects: 4, done. remote: Counting objects: 100% (4/4), done. remote: Compressing objects: 100% (4/4), done. remote: Total 4 (delta 0), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (4/4), done. From https://github.com/oki2a24/docker_nginx_php_fpm_sock * [new branch] master -> origin/master $ $ # ここでちょっとログを確認 $ git log --all --decorate --graph --oneline * dac5825 (HEAD -> develop, origin/develop) feat サンプルの index.php を追加する * d094d85 feat: UNIX ソケットで Nginx PHP-FPM 通信する * 7b3ce1f feat: TCP 接続で PHP を最低限扱えるよう default.conf をコメント解除・編集する * 9818b98 feat: 静的 HTML 表示を可能とする。必要な設定ファイルを volume 共有する * 12dc185 (origin/master) Initial commit $ $ # マージしてプッシュ $ git checkout master Branch 'master' set up to track remote branch 'master' from 'origin'. $ git merge --no-ff --allow-unrelated-histories develop Merge made by the 'recursive' strategy. docker-compose.yml | 24 ++++++++++++++++++++++++ volumes/html/index.html | 1 + volumes/html/index.php | 1 + volumes/nginx/nginx/conf.d/default.conf | 45 +++++++++++++++++++++++++++++++++++++++++++++ volumes/nginx/nginx/nginx.conf | 32 ++++++++++++++++++++++++++++++++ volumes/php_fpm/php-fpm.d/zz-docker.conf | 7 +++++++ 6 files changed, 110 insertions(+) create mode 100644 docker-compose.yml create mode 100644 volumes/html/index.html create mode 100644 volumes/html/index.php create mode 100644 volumes/nginx/nginx/conf.d/default.conf create mode 100644 volumes/nginx/nginx/nginx.conf create mode 100644 volumes/php_fpm/php-fpm.d/zz-docker.conf $ git push origin master Enumerating objects: 4, done. Counting objects: 100% (4/4), done. Delta compression using up to 4 threads Compressing objects: 100% (2/2), done. Writing objects: 100% (2/2), 370 bytes | 370.00 KiB/s, done. Total 2 (delta 0), reused 0 (delta 0) To https://github.com/oki2a24/docker_nginx_php_fpm_sock.git 12dc185..4d1844b master -> master $ $ # 最後にログを確認 $ git log --all --decorate --graph --oneline * 4d1844b (HEAD -> master, origin/master) Merge branch 'develop' |\ | * dac5825 (origin/develop, develop) feat サンプルの index.php を追加する | * d094d85 feat: UNIX ソケットで Nginx PHP-FPM 通信する | * 7b3ce1f feat: TCP 接続で PHP を最低限扱えるよう default.conf をコメント解除・編集する | * 9818b98 feat: 静的 HTML 表示を可能とする。必要な設定ファイルを volume 共有する * 12dc185 Initial commit $
補足。エラー
ローカルリポジトリのブランチ名を master から変更しなかったときに発生しました。
リモートリポジトリ作成時に、README.md や LICENSE ファイルを作成し、 Initial commit も作成しました。
このため、リモートリポジトリにも master ブランチが作成され、ローカルリポジトリの master ブランチと名前が被ってしまったのが原因です><。
ですので、ローカルリポジトリのブランチ名を master から develop などと変更すれば、解決です♪
$ git push -u origin --all To https://github.com/oki2a24/docker_nginx_php_fpm_sock.git ! [rejected] master -> master (fetch first) error: failed to push some refs to 'https://github.com/oki2a24/docker_nginx_php_fpm_sock.git' hint: Updates were rejected because the remote contains work that you do hint: not have locally. This is usually caused by another repository pushing hint: to the same ref. You may want to first integrate the remote changes hint: (e.g., 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details. oki2a24:samplenginxphpfpm[master]$ git status On branch master Untracked files: (use "git add <file>..." to include in what will be committed) volumes/html/index.php nothing added to commit but untracked files present (use "git add" to track) $
リモートリポジトリのブランチをローカルリポジトリのブランチにマージしようとしたときに発生しました。
ローカルリポジトリにリモートリポジトリのアドレスを追加し、それを fetch しました。
リモートリポジトリのブランチを、ローカルリポジトリにマージしようとして、エラーとなりました><。
外から追加したリポジトリは簡単にはマージさせないよ!ということですね。
次のページが解決の参考になりました。ありがとうございます!
$ git merge --no-ff develop fatal: refusing to merge unrelated histories $
おわりに
GitHub でリポジトリを作成してから作業を始める。。。
これがスタンダードなのかも知れません。
しかし、私はとりあえずローカルで作業を始めて、あとからそれを GitHub へアップロードしたいことが度々あります。
そんなとき、エラーに遭遇してきましたけれども、適当にごまかしてきました。
今回、どんなエラーに遭遇して、それはなんなのか、どうやって解消すればよいのかを調べました。
以上です。
「すでに Git 管理しているローカルリポジトリを、新規で作った Github リポジトリに反映する方法」への1件の返信
[…] エラー内容は、 すでに Git 管理しているローカルリポジトリを、新規で作った Github リポジトリに反映する方法 – oki2a24 参照 […]