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

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

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

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

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

BitBucket

BitBucketは無料のリポジトリ管理ホスティングサービスです。 MercurialとGitのVCSに対応しています。プライベートリポジトリを、制限なく作成することが可能です。

Q&A

解決済

3回答

2486閲覧

Git : AWS * Bitbucket にてリモートに最初のプッシュが行えない

退会済みユーザー

退会済みユーザー

総合スコア0

Git

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

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

BitBucket

BitBucketは無料のリポジトリ管理ホスティングサービスです。 MercurialとGitのVCSに対応しています。プライベートリポジトリを、制限なく作成することが可能です。

0グッド

0クリップ

投稿2018/10/03 06:25

編集2018/10/03 06:50

#前提

現在Ruby on rails TutorialにてRailsを学習中の初学者です。
文中指定の通りAWSを用いて学習を開始したのですが、項番1.4.3にて詰まっております。

#問題

問題が発生している箇所はリスト1.11の部分です。

bash

1$ git remote add origin git@bitbucket.org:[UserName]/hello_app.git 2$ git push -u origin --all

1行目は無事行うことができるのですが、2行目にて以下のログが表示されます。

bash

1$ git push -u origin --all 2Warning: Permanently added the RSA host key for IP address '18.205.93.1' to the list of known hosts. 3Enter passphrase for key '/home/ec2-user/.ssh/id_rsa': 4invalid command syntax. 5fatal: Could not read from remote repository. 6 7Please make sure you have the correct access rights 8and the repository exists.

致命的なエラーとして、リポジトリが読み取れませんと表示されてしまいます。

#試したこと

こちらのサイトを参考に、リモートの再登録を行おうとすると、以下のログが出力されました。

bash

1$ git remote add origin git@bitbucket.org:[UserName]/hello_app.git 2fatal: remote origin already exists.

既にリモートが存在するということでしたので、こちらのサイトを参考に一度リモートを削除し、改めてリモートの登録を行いそのままプッシュしたところ、次に以下のログが出力されました。

bash

1$ git push origin 2fatal: The current branch master has no upstream branch. 3To push the current branch and set the remote as upstream, use 4 5 git push --set-upstream origin master

致命的なエラー解消のために指定されたコマンドを入力したのですが、以下のログが出力されました。

bash

1$ git push --set-upstream origin master 2Enter passphrase for key '/home/ec2-user/.ssh/id_rsa': 3To bitbucket.org:uguni123/hello_app.git 4 ! [rejected] master -> master (fetch first) 5error: failed to push some refs to 'git@bitbucket.org:[UserName]/hello_app.git' 6hint: Updates were rejected because the remote contains work that you do 7hint: not have locally. This is usually caused by another repository pushing 8hint: to the same ref. You may want to first integrate the remote changes 9hint: (e.g., 'git pull ...') before pushing again. 10hint: See the 'Note about fast-forwards' in 'git push --help' for details.

ヒントとこちらのサイトを参考に、以下の4つを試してみました。

対応方法 1) とりあえず git pull する
...
対応方法 2)fetch して merge する
...
対応方法 3)fetch して rebase する
...
対応方法 4)pull –commit や pull –rebase する
...

全て試してみたのですが、問題解決には至ることができませんでした。
GitHubの記事は多く散見するのですが、Bitbucketについての記事は相対的に数が少なく、自分の検索力不足からTeratailさんに質問させていただくことに致しました。

皆さんの知恵をお借りさせていただければ幸いです。
よろしくお願いします。

#環境
Windows 10 64bit
Firefox Quantam 62.0.3
Git 2.14.4
Amazon Linux AMI release 2018.3

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

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

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

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

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

guest

回答3

0

git push -u origin --all を実行したときのエラーメッセージをよく見ましょう。

invalid command syntax.

「不正なシンタックス」とあります。おそらく、 --all の位置が悪いです。最新のgitドキュメントを参照してください。
--allgit push の直後に置く形になっています。

pushするときは原則としてpushしたいブランチ名を指定しましょう。間違えたブランチにいることに気づかずにpushする事故を防ぐ目的があります。

$ git push origin master

push が reject になった件ですが、おそらくローカルのmasterブランチの状態がリモートの状態とうまく一致しないのが原因です。
別のどなたかが既にmasterブランチを更新してpush済みだったりすると発生します。
ブランチを分けて作業する癖をつけたほうがいいと思います。

git pushがrejectされたときの解決方法URLまとめ などを参考に解決してください。

投稿2018/10/03 07:26

mather

総合スコア6753

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

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

0

ベストアンサー

チュートリアルの順番からすると大丈夫とは思いますが、git add -A, git commitは済んでますよね?

投稿2018/10/03 07:19

EuphoryX1

総合スコア25

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

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

退会済みユーザー

退会済みユーザー

2018/10/03 07:28

回答ありがとうございます。 項番通りに行っていたので、そちらの行程は完了しております。 ```bash $ git log commit 80b68406b98a6f57e4c2ffe60df4021b17a4e6f2 (HEAD -> master) Author: [user.name] <[user.email]> Date: Wed Oct 3 05:45:49 2018 +0000 Initialize repository ``` 上記の出力にて済んでいることは確認が取れると認識しております。
退会済みユーザー

退会済みユーザー

2018/10/03 07:41

申し訳ございません、現在確認してみたところaddとcommitが完了しておりませんでした。 ```bash $ git status On branch master Untracked files: (use "git add <file>..." to include in what will be committed) hello_app/ nothing added to commit but untracked files present (use "git add" to track) ``` ただしaddとcommitを両方済ませたのですが、最終的にpushを行う際には今までと同様のログが出力されてしまいます。 ```bash $ git add hello_app/ $ git commit -m "Initialize repository" [master 9340f13] Initialize repository 1 file changed, 45 insertions(+) create mode 100644 hello_app/README.md $ git push -u origin --all Enter passphrase for key '/home/ec2-user/.ssh/id_rsa': To bitbucket.org:uguni123/hello_app.git ! [rejected] master -> master (fetch first) error: failed to push some refs to 'git@bitbucket.org:[UserName]/hello_app.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. ```
EuphoryX1

2018/10/03 07:50

Bitbucketのサイトでgitリポジトリを作成したさい、READMEの作成にはチェックを入れましたか?入れた場合、初回コミットまで行われ、入れないと ステップ2: 既存のリポジトリをBitbucketに接続する git remote add origin https://XXXX@bitbucket.org/XXXX/hello_app.git git push -u origin master をしてくださいね、という案内が画面に表示されました。
退会済みユーザー

退会済みユーザー

2018/10/03 08:13

リポジトリをREADMEなしで作り直し、画面の表示に従うことで無事pushをすることができました! Ruby on railsチュートリアルに表示されているBitbucketと現在のBitbucketの表記の違いが原因でした。 長いやり取りにて申し訳ありませんでした、ご回答ありがとうございます!
EuphoryX1

2018/10/03 08:17

github,BitbucketはSaaSのため、どんどん進化にともなって使い方や挙動が変わってきますからね。でもいったんgitリポジトリを作成してremoteとして繋がれば、あとはgitコマンド自体の使用方法のお話しになります。 がんばってください!
guest

0

fatal: remote origin already exists.

はoriginが見つかっていると言っているので、リモートブランチの接続情報を解除する必要があります。

git remote remove origin

その上で

git remote add origin git@bitbucket.org:(UserName)/hello_app.git

を実行して下さい

投稿2018/10/03 06:52

n_takapyon

総合スコア443

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

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

退会済みユーザー

退会済みユーザー

2018/10/03 06:59 編集

ご回答ありがとうございます。 コードブロックとしては表示していないですが、 ```bash $ git remote remove origin ``` は行った上で、改めてリモートの登録を行い、プッシュする作業は行いました。 その際に文中にあるように、 ```bash $ git push -u origin --all Enter passphrase for key '/home/ec2-user/.ssh/id_rsa': To bitbucket.org:[UserName]/hello_app.git ! [rejected] master -> master (fetch first) error: failed to push some refs to 'git@bitbucket.org:uguni123/hello_app.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. ``` のエラーが発生してしまい、先に進むことができませんでした。
n_takapyon

2018/10/03 07:00

sshキーの登録が正しくされていない為に発生しているエラーかと思われます
退会済みユーザー

退会済みユーザー

2018/10/03 07:08

sshキーの認証は何度かやり直したため、方法が間違っていない限りは入力間違いなどはないかと思います。 Bitbucketにsshキーを認証する手順は[Rails Tutorialのリスト1.11](https://railstutorial.jp/chapters/beginning?version=5.1#code-bitbucket_add_push)から参照し、以下の手順にて行っております。 > 1. Bitbucketアカウントがない場合はアカウントを作成します。 > 2. 公開鍵をクリップボードにコピーします。既に公開鍵を作成している場合は、リスト 1.10のようにcatコマンドを使って公開鍵を表示ができます。まだ作成していない場合はリスト 1.10のコマンドを実行しても No such file or directory と表示されます。まだ作成していない場合は「Git - SSH 公開鍵の作成」を参考に公開鍵・暗号鍵を作成してください。 > 3. Bitbucketに公開鍵を追加するには、左下にあるアバター画像をクリックして [Bitbucket 設定]、[SSH 鍵] の順に選択します (図 1.18)。 sshは ```bash $ cat ~/.ssh/id_rsa.pub ``` にて出力されたものをクリップボードを使い貼り付けています。 前後に空白などは確認できなかったので、恐らくssh設定は誤りはないと思っております。 何か誤ってる箇所などありましたらご指摘いただけると幸いです。
n_takapyon

2018/10/03 07:17

クライアント側のgitが参照するsshキーが登録できているでしょうか。 windowsであればc:\Users[ユーザ名].sshフォルダに鍵を登録しておきます。
退会済みユーザー

退会済みユーザー

2018/10/03 07:24

今回使用しているPCはWindowsですが、使用している環境はAWSを使用しております。 AWS上のsshキーの登録可否は、以下のコマンドを入力した際に、「id_rsa」と「id_rsa.pub」が確認できることで登録ができていると認識しております。 ```bash $ ls -a ~/.ssh/ . .. authorized_keys id_rsa id_rsa.pub known_hosts ``` また、AWSを使用している上ではローカルマシン(使用しているWindowsPC)のssh設定は不要と認識しております。 何か誤りがあればご指摘いただけると幸いです。
n_takapyon

2018/10/03 07:34

ローカルマシンからgitを実行するのであれば公開鍵を登録しておく必要があるかと思います。
退会済みユーザー

退会済みユーザー

2018/10/03 07:37

申し訳ございません、言葉足らずでした。 ローカルマシンからGitは行っておらず、AWS上で編集したファイルをAWS上のTerminalからGitを扱っております。 ローカルマシンからファイルに触れたりコマンドを入力したりすることは現状一切ございません。
n_takapyon

2018/10/03 07:46

そういう事でしたか。 でしたら仰る通りsslの設定は不要ですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問