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

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

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

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

GitHub

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

Q&A

1回答

6628閲覧

ブランチを切ったあとに、masterでマージされた内容があったのでpullしたら怒られました

sonogo

総合スコア4

Git

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

GitHub

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

0グッド

1クリップ

投稿2020/02/18 09:34

編集2020/02/18 09:46

ブランチを切ったあとにmasterに変更があったので取り込みたい

git hubを使っています。

git checkoutでブランチを切ったあとに、masterにマージされた変更があったのですが、それを取り込みたいです。

いけるとおもってgit pull origin masterしたのですが、怒られました。
「まずい」って言われたのですが、なにがまずいのかわからりません。
怖くて、ファイルの変更作業も進められません。

  • 何がまずいのか、
  • pullしてしまったため、このあとはどう処理したらいいのか、
  • どうすべきだったのか、

を教えていただけたら、嬉しいです(至急)

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

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

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

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

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

guest

回答1

0

まずいと怒ったのは上司や先輩エンジニアではなく、
コマンド実行後のターミナルの話ですよね?

ブランチ名が一致しない場合
git pull origin mastergit push origin master等のコマンドを飛ばした際、
ブランチ名が一致してませんよ、なのせ動作を取りやめますと返される事があります。

現状の質問者さんの状況から考えて、
下記のような流れで作業すれば良いのではないかと思います。

bash

1$ git branch 2* feature_branch # 作業中のブランチをコレだとする 3 master 4 5# 作業中のファイルがあれば一度stashで退避させる 6$ git stash 7 8$ git status 9On branch feature_branch 10nothing to commit, working tree clean 11 12# masterブランチへ移動して更新 13$ git checkout master 14 15$ git pull origin master 16 17# 更新内容を作業中のブランチに取り込む 18$ git checkout feature_branch 19 20$ git rebase master 21 22# もしコンフリクトが起こっていたら修正する 23$ vim [対象のファイル] 24$ git add [対象のファイル] 25$ git rebase --continue 26 27# 退避した作業中のファイルを再度適用する 28$ git stash pop

git merge masterではなくgit rebase masterを使った理由ですが、
これにするとmasterへ適用された修正内容のコミットを下に挿し込むので、
プルリクを作った時にスムーズな適用になりやすいのでおすすめです。

怖ければ先輩エンジニアに質問するか、
git merge masterでも良いと思います。


【追記】 先輩の言っている意図

masterブランチには積み重なってきたコミットが存在します。
それを下に挿し込んでくれという依頼です。

ここはもうブランチを捨てて作り直しましょう。
cherry-pickで抜き出す作戦です。

bash

1$ git branch 2* feature_branch # 作業中のブランチをコレだとする 3 master 4 5# 自分の作業のコミット番号[84ef3631d05250e...]をメモする 6$ git log 7commit 84ef3631d05250e... (HEAD -> feature_branch) 8Author: miyabisun <miyabi@example.com> 9Date: Tue Feb 18 18:38:12 2020 +0900 10 11コミットメッセージ 12# 上下スクロールはJとKキー、抜けて戻るにはQキー 13 14# とりあえずtmpみたいなブランチ名に退避しておく 15$ git checkout -b tmp 16 17# tmpブランチへ退避したのでfeature_branchを削除 18$ git branch -D feature_branch 19 20# 改めてmasterブランチを更新する 21$ git checkout master 22$ git pull origin master 23 24# 最新のmasterブランチから改めて作業中ブランチを作る 25$ git checkout -b feature_branch 26 27# 自分の作ったコミットを手作業で反映していく 28$ git cherry-pick 84ef3631d05250e

これで先輩の言う大丈夫な状態になるでしょう。
先輩にこの質問のURLを共有して確認してもらいながら作業してくださいね。

投稿2020/02/18 09:44

編集2020/02/18 10:07
miyabi-sun

総合スコア21158

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

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

sonogo

2020/02/18 09:50

`mster`は誤字でした。すみません。怒らたのはオンライン上で連絡をとっていた先輩です。
miyabi-sun

2020/02/18 09:58

であれば、私の書いたようにmasterへのコミットを下に挿し込んで `git rebase master`で適用して欲しいという意図で言ってますね。 回答調整します。
miyabi-sun

2020/02/18 10:10 編集

リカバリー策を追記で書きました。 これにはブランチを削除してしまって後戻りが出来ない作業が含まれます。 なのでしっかりと後戻り出来るように確実にコピーを取りながら行うという流れを記載しています。 途中で端折って修正箇所が消し飛んだら泣き寝入りなので、 自分の判断で端折ったりしないようにして下さい。 失敗するとマジでやばいので、不安なら ちゃんと先輩と相談しながら進めるようにしてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問