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

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

ただいまの
回答率

90.47%

  • GitHub

    1068questions

    GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

gitにpushする際に失敗してしまいます。

受付中

回答 2

投稿

  • 評価
  • クリップ 2
  • VIEW 141

engeng

score 9

gitにpushする際に失敗してしまいます。
以下が試したことになります。なぜかpushが通りません、、、、
どなたかご教授願えませんでしょうか。。。。

git init, commitまで。

MacBook-Pro:site-master admin$ git init
Reinitialized existing Git repository in /Users/admin/Desktop/site-master/.git/
MacBook-Pro:site-master adimn$ git add .
MacBook-Pro:site-master admin$ git commit -m "Initialize repository"
On branch master
nothing to commit, working tree clean

originを削除し、再度originを登録。

MacBook-Pro:site-master admin$ git remote add origin https://github.com/admin/site.git
fatal: remote origin already exists.
MacBook-Pro:site-master admin$ git remote rm origin
MacBook-Pro:site-master adimn$ git remote add origin git@github.com:admin/site.git


pushするも、(fetchが先とエラーが出現

MacBook-Pro:site-master admin$ git push -u origin master
Enter passphrase for key '/Users/admin/.ssh/id_rsa': 
To github.com:admin/site.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'git@github.com:adimn/site.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.


pullしてみる。そのあとpushするも(non-fast-forword)

MacBook-Pro:site-master admin$ git pull origin master
Enter passphrase for key '/Users/admin/.ssh/id_rsa': 
warning: no common commits
remote: Enumerating objects: 20, done.
remote: Counting objects: 100% (20/20), done.
remote: Compressing objects: 100% (20/20), done.
remote: Total 423 (delta 10), reused 0 (delta 0), pack-reused 403
Receiving objects: 100% (423/423), 539.72 KiB | 132.00 KiB/s, done.
Resolving deltas: 100% (133/133), done.
From github.com:admin/site
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
fatal: refusing to merge unrelated histories

MacBook-Pro:site-master admin$ git push -u origin master
Enter passphrase for key '/Users/admin/.ssh/id_rsa': 
To github.com:admin/site.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:adimn/site.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

fetch>merge>pullするもconflict

MacBook-Pro:site-master adimn$ git fetch
Enter passphrase for key '/Users/admin/.ssh/id_rsa': 
MacBook-Pro:site-master admin$ git merge master
Already up to date.
MacBook-Pro:site-master admin$ git pull origin master
Enter passphrase for key '/Users/admin/.ssh/id_rsa': 
Enter passphrase for key '/Users/admin/.ssh/id_rsa': 
From github.com:admin/site
 * branch            master     -> FETCH_HEAD
fatal: refusing to merge unrelated histories
¥MacBook-Pro:site-master admin$ git pull origin master --allow-unrelated-histories
Enter passphrase for key '/Users/adimn/.ssh/id_rsa': 
From github.com:admin/site
 * branch            master     -> FETCH_HEAD
warning: Cannot merge binary files: .DS_Store (HEAD vs. 07b6d0404470b6e89ede9033699560c7fad14b2d)
Auto-merging README.md
CONFLICT (add/add): Merge conflict in README.md
Auto-merging .DS_Store
CONFLICT (add/add): Merge conflict in .DS_Store
Automatic merge failed; fix conflicts and then commit the result.
MacBook-Pro:site-master admin$ 

サイトを見て調べて試行錯誤するも泥沼にはまっている気がします。。。
どなたかご教授願えませんでしょうか。。よろしくお願いいたします。。。。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

+1

>Updates were rejected because the remote contains work that you do not have locally.

と言われていますので,リモートリポジトリ(github上のリポジトリ)には存在するのに,
ローカルの環境には存在しない commit が存在しているように見えます。

push なさろうとしている commit の内容的に,このリポジトリ(https://github.com/admin/site)を作成してから初めての commit をしようとしていると思われます。
恐らく,リポジトリ作成時に,Initialize this repository with a README にチェックしてしまい,意図せず README.md を作成する commit がリモートリポジトリで作成されているという状況な気がします。

解決方法としては以下の 3 パターンが考えられます。

1. ローカルでの commit を消去してから pull を行う。

正攻法だと思います。
現在問題になっているのは,リモートリポジトリとローカルの commit 履歴が異なっていることですのでそれを修正します。

git reset --soft HEAD^ などのコマンドでローカルで行った commit をいったん消去してから git pull でリモートリポジトリの内容をローカルにもってきて,
再度 commit,push を行えば通るはずです。

commit 消去の際に,ローカルの変更内容を残して置きたい場合は --soft オプションを忘れずにつけるようにしてください。

2. 強制的にローカルの内容をリモートリポジトリに上書きさせる。

push の際に -f コマンドをつけることで,強制的に push を成功させます。
ただ,くせになるとあんまりよくないのでおすすめしません。

$git push -f origin master

3. リポジトリを作成しなおす。

普通はできない対処法ですが,リポジトリを作成したばかりなのでしたらありな方法かもしれません。

github 上のリモートリポジトリを消去して,Initialize this repository with a README にチェックしないよう気をつけてリポジトリを再作成。
その後, 同様の手順でgit init して git remote add してリモートリポジトリを登録して commit して push すれば通るはずです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

一番簡単な方法
GitHubにリポジトリを作って(あるいはすでにあるリポジトリを)Cloneしておきます
つぎに、そのCloneしたものを修正(あるいはファイルコピーなど)していき、Commitしてpushしましょう

これでどうでしょう

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 90.47%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • GitHub

    1068questions

    GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。