質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Q&A

解決済

1回答

673閲覧

git リモートリポジトリにプッシュする

Iori

総合スコア55

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

1グッド

3クリップ

投稿2022/10/02 05:34

編集2022/10/03 08:09

前提

Gitにフォルダーをプッシュしたいのですが、error: failed to push some refs to URL と出てしまいます。

発生している問題・エラーメッセージ

イメージ説明

該当のソースコード

イメージ説明

試したこと

こちらのサイトに沿って行っていました。
https://tech-blog.rakus.co.jp/entry/20200529/git#1-4-%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B

このサイトの git fetchとgit mergeをやってみましたが、同じ結果にたどり着きました。
https://dianxnao.com/git-push%E3%82%A8%E3%83%A9%E3%83%BC%EF%BC%9Aerror-failed-to-push-some-refs-to-%E3%81%AF%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%E3%81%AE%E6%96%B9%E3%81%8C%E6%96%B0%E3%81%97%E3%81%84%E3%81%AE%E3%81%A7/

イメージ説明

補足情報(FW/ツールのバージョンなど)

Hyperというターミナルを使っています。

Cocode様のアドバイスを試した結果

Cocode様

丁寧な解説誠にありがとうございます。

手順①、②までは順調でしたが、手順③を行うと下の画像のように表示されてしまいました。
イメージ説明

git pull origin main はこの記事を参考に行いました。
https://qiita.com/katsuyuki/items/8e03e5eb4223912a08c5

最後にまたgit pull... とあるのでまたgit pullをすべきなのでしょうか...

追加質問への回答を行った結果

Cocode様
本当に丁寧でわかりやすいご指導ありがとうございます。

ご指示いただいた案内に沿っていたのですが、git push -u origin mainでまたerrorになってしまいました。

イメージ説明

そこでこちらのサイト
https://pgmemo.tokyo/data/archives/1535.html
の方法を試しましたが、2.マージするの部分で下のようなerror?が出ました。

イメージ説明

この夢は諦めた方がいいのでしょうか...😅

$ git logの実行結果

返信が遅くなり申し訳ございません。こちらです。
イメージ説明

解決しました!!!!!😂😂😂

Cocode様

追加情報ありがとうございます!
無事追加されました!
イメージ説明

解決手順

terminal

1 2//だめパターン 3$ git init 4 5$ ls 6 7$ git status 8 9$ git add . 10 11$ git status 12 13$ git commit -m "added by hyper" 14 15$ git log 16 17$ git remote add origin URL 18 19$ git push 20 21$ git push --set-upstream origin main 22 23//okパターン 24$ git init 25 26$ git commit --allow-empty -m "first commit" 27 28$ git branch -M main 29 30$ git push origin main >>> error 31 32$ git pull origin main >>> refusing to merge unrelated histories と出たので 33 34$ git merge --allow-unrelated-histories origin/main 35 36$ git push origin main 37

以上でしっかりGithubに反映されました!ながいことお付き合いしていただいて本当にありがとうございます!
これらのサイトを参考にerror達に対処しました。
https://qiita.com/Takao_/items/5e563d5ea61d2829e497

https://qiita.com/mei28/items/85bc881ac1f26332ac15

Cocode👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2022/10/02 06:12

ローカルのブランチ名が main ではなく master になってるので、master をプッシュするか、ブランチ名を main に変更するか…?
Cocode

2022/10/02 07:08 編集

hoshi-takanori様、それっぽいですね。 あとは気になるのは、不勉強で申し訳ないのですが、 $git add .したときに何もファイルがないので、 そのあとコミットしようとしたときに、「コミットするものないよ」ってメッセージでてるのですが、空コミットってできるんでしょうか? 質問者様がかいたコミットメッセージの"Added by git"と、そのあとのgit logの"added by git"が大文字小文字が違うので、もしかしてログで表示されているのはただのデフォルトのメッセージ???と疑問に思っています。
Cocode

2022/10/02 10:14

質問編集ありがとうです!見てみます
Cocode

2022/10/02 13:21 編集

現段階での $ git log origin/main の結果をみせていただけますか?
Cocode

2022/10/02 13:25

↑すみませんわたしコメント編集しちゃって笑 上記のログも見せて欲しいですー!
guest

回答1

0

ベストアンサー

考えられる原因

1)ファイルが何もないので、コミットができていない

  • コミットされていない=プッシュするものがないので、プッシュできない。

2)ローカルとリモートでブランチの名前が違う

  • ローカルブランチはmasterなのに、GitHubのブランチはmainなのでブランチ違いでプッシュできない 。
  • master(主人)という言葉が黒人差別を連想させてしまうという配慮で、GitHubはデフォルトブランチ名をmaster -> mainに変更しました。
  • 2020年10月に変更されたので、それ以前の古いGitHubの使い方の情報をみると、ローカルとリモートのデフォルトブランチ名違いの対策がないのでエラーがおきます。(質問者様の参考サイトは2020年5月なので対応がかかれてないですね)

対策

以下を試してみてください。

手順① 空コミットする

terminal

1$ git commit --allow-empty -m "first commit"
  • --allow-emptyをつけると変更情報何もなくても空のコミットができます。
手順② ローカルのデフォルトブランチ名変更

terminal

1$ git branch -M main
  • ローカルのデフォルトブランチ名をmaster -> mainに変更します。
  • 逆に、GitHubの設定でデフォルトブランチ名をmain -> masterに変更することもできますが、今回は割愛
手順③ 初めてのプッシュ

terminal

1$ git push -u origin main
  • 各ブランチ初めてプッシュする時は-uをつけてプッシュしてください。
  • そうすると、以降は$ git pushだけでプッシュできるようになります。
    • ふつうは$ git push origin ブランチ名と、ブランチ名を毎回書かないといけない。

追加質問への回答

追加のエラーみました!
お一人でなんとか解決しようと頑張られていた時にいろいろぐちゃぐちゃになっちゃってますので、リポジトリ作り直した方がはやいですー!
以下の手順でどうぞ!

あと、GitHubがセキュリティ強化されてたため初回に特殊なパスワードを設定しないといけなくなりました。
パスワードを求められて、正しいパスワードを入力しても間違っていると言われた時は教えてください。
GitHubのログインパスワードとは違うものをいれないといけないときがあります。

1)現在のリモートリポジトリをGitHubで削除
2)ローカルリポジトリもフォルダごと全部削除
3)新しくGitHubでリポジトリ作成
4)ローカルでフォルダ作成
5)ターミナルでローカルのフォルダに移動

terminal

1$ cd /Users/<ユーザー名>/Desktop/<つくったフォルダ名>
6)Gitを導⼊

隠しフォルダの.git フォルダが作成されます。

terminal

1$ git init
7)手順① 空コミットする
8)手順② ローカルのデフォルトブランチ名変更
9)リモートリポジトリと連携させる

terminal

1$ git remote add origin <ソースURL>
10)手順③ 初めてのプッシュ

投稿2022/10/02 08:24

編集2022/10/02 10:32
Cocode

総合スコア2314

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Cocode

2022/10/02 13:59 編集

Iori様 寝てしまうかもしれませんので、先にお伝えしておきます。 ◆懸念点① $ git fetch $ git log origin/main で、リモートリポジトリの状態を確認します。 新しくつくったばかりのリポジトリなのでなにもデータがあるはずないのですが、操作を誤って作ってしまっている可能性があるので、その確認です。 もしリモートにデータがあれば、いらないデータだとは思うので、強制的に上書きをする強制プッシュをしましょう。 $ git push -f origin main 「-f」で強制プッシュができます。危険な技なので普段は使わないでください。 ◆懸念点② 新旧のリモートリポジトリが同じ名前なので、もしかしたらシステムが混同してしまっているのかな?と、思っています。(自信はないです) ひょっとしたらまた全部一からやり直しで、リモートリポジトリ作成の際は名前を違うものにしたらうまくいくかも? などと期待しています。 ◆今後の案 上記2つの処置をしてもうまくいかなかった場合、ローカルリポジトリの作成方法を変えてみます。 今は、「ローカルリポジトリを作って → リモートと連携させる」という方法をしていますが、 もう一つ、「リモートのデータをもってきて、ローカルリポジトリをつくる」という方法があります。 クローンといいます。 方法は、まずは上記2つを試してみて無理だった場合ご案内します。
Iori

2022/10/03 01:06

赤の他人にこんなにも親身になってサポートしていただき本当にありがとうございます。スクールもメンターもいないのでteratailとstackoverflowが私の学習の先生です。Udemyでもインド人の方がCocode様のように継続的に質問に答えて下さってインターネットの恩恵を受けまくっています。感謝しきれません。本当にありがとうございます。
Cocode

2022/10/03 01:20

更新された解決策拝見しました! 自己解決素晴らしいです👏 私も勉強になりましたー!ありがとうございます。 Iori様の真摯に学ぼうとする姿が、周りのみなさんを応援したい気持ちにさせるんだと思います。 これからも一緒に頑張って学んでいきましょう〜! 私も精進します💪
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問