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

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

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

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

GitHub

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

Q&A

解決済

1回答

8998閲覧

GitHubにて "This branch is 1 commit ahead, 1 commit behind master."が出て、GitHubでプルリクが送れない。

Toshiyuki023

総合スコア3

Git

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

GitHub

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

1グッド

0クリップ

投稿2020/10/09 00:26

実現したいこと

ローカルの開発ブランチで変更内容をプッシュ、プルリクを作成し、マージ後にローカルのマスターへその開発環境で発生した変更分を統合させる(開発は一人で行っております)。

問題点

通常、プッシュ後にリモートリポジトリへアクセスすると、以下のように黄色い表示が出てそこからプルリクが作成できるのですが、以下のようなメッセージがでて作れません。

This branch is 1 commit ahead, 1 commit behind master.

発生原因

commit b945dcc15c21caf955f79e5470486023d2e56b6a (HEAD -> master) Merge: b20f53a 1e1319b Author: Toshi023 Date: Thu Oct 8 16:54:16 2020 -0700 Merge branch 'master' of https://github.com/Toshiyuki023Hori/extra_exchange commit 1e1319b480c321fa003131efd5681739e1af4470 (origin/master) Merge: f46c476 52e7797 Author: Toshiyuki023Hori <65416932+Toshiyuki023Hori@users.noreply.github.com> Date: Thu Oct 8 16:54:01 2020 -0700 Merge pull request #153 from Toshiyuki023Hori/develop 取引画面追加 commit b20f53a7a8c2fcd5885e706725f9232167963116 Merge: ac5c2d8 f46c476 Author: Toshi023 Date: Thu Oct 8 16:53:00 2020 -0700 Merge branch 'master' of https://github.com/Toshiyuki023Hori/extra_exchange commit 52e7797c7b5dff242cbecb9c62a1e26e04a233d1 Merge: 37e7ab7 b65668f Author: Toshi023 Date: Thu Oct 8 16:52:14 2020 -0700 [Add] 取引詳細画面ファイル追加 commit 37e7ab764908b0b1f108d043dd333bfbd0ca06d3 Author: Toshi023 Date: Thu Oct 8 16:46:14 2020 -0700 [Add]Deal_Detailファイル追加 commit 4e1b2e636602daf03ca8f6b509e28b308a8946b5 Merge: ac5c2d8 f46c476 Author: Toshi023 Date: Thu Oct 8 16:44:23 2020 -0700 Merge branch 'master' of https://github.com/Toshiyuki023Hori/extra_exchange into develop commit b65668f0924490c564ce388805bf40a11cb59c3d Author: Toshi023 Date: Thu Oct 8 16:36:33 2020 -0700 [Add] Deal_Detailファイル追加 commit f46c476bd5c1cda8c14b0c0e2f7b1e334676f4e5 Merge: ad6582f 25a9c24 Author: Toshiyuki023Hori <65416932+Toshiyuki023Hori@users.noreply.github.com> Date: Thu Oct 8 16:31:05 2020 -0700 Merge pull request #152 from Toshiyuki023Hori/develop リモートDevelopの更新内容をリモートMasterへ反映 commit ac5c2d8a48f4c6e51ec762f23b588b1e683cc074 Merge: 25a9c24 ad6582f Author: Toshi023 Date: Thu Oct 8 16:14:34 2020 -0700 Merge remote-tracking branch 'origin/master' into develop ========================= おそらくここで 開発ブランチ内で git pull をしました。 ========================= commit 25a9c2413d9851f4d43753f207c743865cb7e781 Author: “Toshiyuki023Hori“ Date: Wed Oct 7 17:58:03 2020 -0700 [Add] 進行中の取引一覧ページ追加 #150 commit 1c15093513b82f38f550613f51f860dcf4091884 Author: “Toshiyuki023Hori“ Date: Wed Oct 7 17:51:57 2020 -0700 [Fix] Request_Deal_TableをDealにも対応できるよう更新 commit ad6582f25403985111ebd04dde7bc277f65dc8ef Merge: 0b4d412 2a0e143 Author: Toshiyuki023Hori <65416932+Toshiyuki023Hori@users.noreply.github.com> Date: Wed Oct 7 17:40:35 2020 -0700 Merge pull request #151 from Toshiyuki023Hori/develop [Update] 申請されたリクエスト一覧画面完成

以上が、ローカルリポジトリのmasterのgit logです。
発生した原因は、開発ブランチ内で[Add] 進行中の取引一覧ページ追加 #150git push origin HEADして、プルリクを作成、ローカルでマージした後に、「誤って、開発ブランチ内でgit pull」をしたことです。

調べた結果出てきた、

git fetch origin master git checkout dev git merge origin/master git checkout master git merge dev

を実行したり、メッセージを無視してプルリクを作って、fetch,pullを自分なりに考えてしてみたのですが、メッセージが消えません。

どのようにすれば、元の状態(おそらく開発用ブランチがmasterの変更履歴を知っている状態かと思います)、に戻すことができるのでしょうか?

まだまだ勉強不足ではございますが、お知恵を貸していただければ幸いです。

ご回答よろしくお願いいたします。

sakura👍を押しています

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

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

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

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

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

guest

回答1

0

ベストアンサー

マスターブランチが前に行ったり後ろに行ったりしていることが原因だと思われます。
以下の対応でできるかと思います。

1.ローカルにリモートブランチをコピーして、最新のリモートが取り込まれたローカルブランチを作る。
$ git pull remote_name
$ git checkout -b new_branch

2.そのブランチにmasterをマージする。
$ git merge master

3.masterに移動し、当該ブランチをmasterにマージです。
$ git checkout master
$ git merge new_branch

この時コンフリクトが発生したら、以下のように修正します。その後コミットをします。
$ git add .
$ git commit -m 'コンフリクトを解決'
$ git merge [mergeするbranch]

4.これですべてのコミットを内包したmasterができあがりました。無事リモートにもプッシュでき、masterが最新のブランチとなります。
$ git push remote_name master

投稿2020/10/09 02:02

firegrape

総合スコア902

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

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

Toshiyuki023

2020/10/09 02:55

丁寧にご説明いただき誠にありがとうございます。 1点だけ質問をさせていただきたいです。 1のローカルにリモートレポジトリをコピーするというのは開発用ブランチ内で行うという認識でよろしいでしょうか?
firegrape

2020/10/09 03:24

はい、開発用のローカルブランチ内で行います。 よくあるパターンだとリモートブランチをmasterで管理していたら、 ローカルブランチ名も同じmasterになることが多いかもしれません。 でも名前は何でも大丈夫です。
Toshiyuki023

2020/10/09 03:33

早速試したところ、無事理想としていた画面を確認することができました。 ご丁寧に且つ的確に説明していただき誠にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問